Как получить отчет о почтовых ящиках комнаты с помощью Powershell

Как получить отчет о почтовых ящиках комнаты с помощью Powershell

Я попробовал запустить эту команду. Она работает гладко, но поля Город и Страна не заполнены. Что я делаю не так?

Get-Mailbox -RecipientTypeDetails RoomMailbox -ANR 'de-' | Select DisplayName,RecipientTypeDetails,alias,PrimarySmtpAddress,City,Country | export-csv C:\Output\room-de2.csv

введите описание изображения здесь

решение1

Get-Mailboxвозвращает объект Microsoft.Exchange.Data.Directory.Management.Mailbox. Если вы посмотрите на егочлены, Город и Страна отсутствуют.

Оба они являются (дополнительными) членами класса ADUser. Вам нужно будет передать свойство SamAccountName из Get-Mailbox в Get-ADUser в сеансе Powershell с загруженным модулем ActiveDirectory. Без дополнительных подробностей о вашей среде я не могу посоветовать вам, как сделать это за один раз. Но есть многошаговый метод.

Если вы добавите SamAccountName в свой Selectконвейер, вы можете использовать CSV для этого. На контроллере домена запустите

Import-Csv <path_to_CSV> | ForEach-Object {Get-ADUser $_.SamAccountName} | select City,Country | Export-Csv <new_CSV_path>

Затем вы можете добавить два поля из выходного CSV-файла Get-ADUser в CSV-файл Get-Mailbox.

$Exch = Get-Content <path_to_CSV>
$AD = Get-Content <new_CSV_path>
for ($i = 0; $i -lt $AD.Length; $i++) {$Exch[$i].insert(($Exch[$i].Length), ",$($AD[$i])") | Out-File <path_to_combined_csv> -Append}

Связанный контент