Como renomear o grupo de DisplayNames dos usuários usando o Powershell no Exchange 2010?

1

Eu tenho um monte de usuários que DisplayNames eu mudei por engano para alguma string (por exemplo: xyz)

Mas há um campo chamado Name que tem FirstName and Lastname. O que eu quero é pegar todos os usuários que tem xyz e eles mudam DisplayName para o nome correspondente.

Get-Mailbox -ResultSize Unlimited -Filter {DisplayName -like "*xyz*"} |

Isso me dá o array que eu preciso, cujo DisplayNames eu preciso mudar. O que eu adiciono depois do "pipe"?

Eu pesquisei muito no Google, mas não consegui encontrar a resposta.

Eu tentei:

Set-Mailbox -DisplayName $_.Name

No entanto, diz

Cannot bind parameter 'DisplayName' to the target. .... cannot be null/empty.

Como posso definir o DisplayName para o mesmo valor que o nome?

    
por epema 14.03.2013 / 10:44

2 respostas

0

Aqui está a solução:

$mbxs = Get-Mailbox -ResultSize Unlimited -Filter {DisplayName -like "*FirstName Lastname*"}
$mbxs | foreach { %{Set-Mailbox -Identity $_.PrimarySmtpAddress -DisplayName $_.Name}}

Obrigado a todos!

    
por 15.03.2013 / 05:46
2

Não há variável $_ ao canalizar diretamente de um cmdlet para o próximo. Portanto, Set-Mailbox está vendo um $ null para o parâmetro DisplayName e falhando. Tente agrupar o comando Set-Mailbox em uma chamada ForEach-Object (alias % ) para obter a variável $_ , assim:

Get-Mailbox -ResultSize Unlimited -Filter {DisplayName -like "*xyz*"} | % {Set-Mailbox  -Identity $_.PrimarySmtpAddress -DisplayName $_.Name}
    
por 14.03.2013 / 15:05