Выгрузка списка пользователей Exchange 2010 с подсчетом размера ящика

Возникла задача по выгрузке определенной части пользователей с подсчетом занимаемого ими места на сервере Exchange 2010.

Стандартный командлет Get-MailboxStatistics мне не подходит, так как задаваемые им условия – это почтовая база или почтовый сервер. Мои же пользователи были раскиданы по разным почтовым базам.

К счастью, они расположены в отдельном OU, поэтому мне не нужно заморачиваться с фильтрами.

Скрипт выполняется в окне EMS (Exchange Management Shell), поэтому я не пишу команд для подгрузки командлетов Exchange.

get-mailbox -OrganizationalUnit "holding.com/Users/" -resultsize unlimited | sort Name | %{
$Size=Get-MailboxStatistics $_.SamAccountName
$_ | Select-object Name, SamAccountName, @{Name="Size";Expression={((($Size).TotalItemSize).value).toMB()+((($Size).TotalDeletedItemSize).value).toMB()}}} | export-csv -encoding unicode -NoTypeInformation c:\tmp\test1.csv

Полученный CSV-файл вы открываете в Excel, раскидываете текст по столбцам, используя разделитель “,” и наслаждаетесь жизнью.

Обратите внимание, что считается размер, реально занимаемый ящиком в базе, то есть общий размер плюс размер сообщений из каталога Recoverable Items (которые удалены из корзины и хранятся в ящике по умолчанию 14 дней. Еще они называются Dumpster.
За помощь в написании скрипта отдельное спасибо Александру Васильеву.

Leave a Reply

Your email address will not be published. Required fields are marked *