Назад | Перейти на главную страницу

Как переименовать группу DisplayNames пользователей с помощью Powershell в Exchange 2010?

У меня есть группа пользователей, DisplayNames которых я по ошибке изменил на какую-то строку (например: xyz)

Но есть одно поле под названием «Имя», в котором есть имя и фамилия. Я хочу взять всех пользователей, у которых есть xyz, и изменить DisplayName на соответствующее Name.

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

Это дает мне нужный мне массив, чьи DisplayNames мне нужно изменить. Что добавляю после "трубы"?

Я много гуглил, но не смог найти ответа.

Я попытался:

Set-Mailbox -DisplayName $_.Name

Однако он говорит

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

Как я могу установить для DisplayName то же значение, что и для Name?

Нет никаких $_ переменная при прямом переходе от одного командлета к другому. Так Set-Mailbox видит $ null для параметра DisplayName и не работает. Попробуйте обернуть команду Set-Mailbox в ForEach-Object звонок (псевдоним %) чтобы получить это $_ переменная, например:

Get-Mailbox -ResultSize Unlimited -Filter {DisplayName -like "*xyz*"} | % {Set-Mailbox  -Identity $_.PrimarySmtpAddress -DisplayName $_.Name}

Вот решение:

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

Спасибо всем!