Поддержание в актуальном состоянии информации о размере почтовых баз крайне полезно. Это позволяет давать оценку роста почтовых баз и контролировать их размер. Не менее интересно иметь в наличии информацию о размере почтовых ящиков пользователей в базах. Известно, что при онлайновой дефрагментации, которая происходит при выполнении стандартных профилактических работ, размер самого файла базы не изменяется. В Event Log при этом по завершении процесса пишется информация об объёме, который фактически резервируется Exchange-сервером и который заполняется при поступлении новой информации в почтовую базу. Имеется инструмент и для сжатия самого файла почтовой базы на этот объём (eseutil /d).
Ниже привожу скрипт для получения в удобном для обработки виде информации по пользователям/базы размещения их почтового ящика/размере ящика/количестве писем:
#Создаем переменные массивов под размеры писем и их количество $Sizes = @{} $Messages = @{} #Здесь собственно эти массивы заполняются информацией с Exchange-сервера Get-WmiObject -ComputerName $Server -Namespace rootMicrosoftExchangeV2 -Class Exchange_Mailbox | ForEach {$Sizes[$_.MailboxDisplayName]=$_.Size; $Messages[$_.MailboxDisplayName]=$_.TotalItems} #Здесь формируется список следующего вида - #Имя пользователя, почтовая база, отдел, компания, размер ящика, количество писем Get-QADUser -IncludeAllProperties -SerializeValues -SizeLimit 0 | Where-Object {$_.homeMDB} | Select-Object Name, homeMDB, department, Company, @{name="MailboxSize";expression={$Sizes[$_.DisplayName]}}, @{name="MailboxItems";expression={$Messages[$_.DisplayName]}} | Export-Csv file.csv
Оргомное спасибо Василию Гусеву за этот скрипт.
Предполагается что параметры DisplayName и MailboxDisplayName совпадают для любой учётной записи пользователя. В принципе можно пробовать использовать LegacyDN и LegacyExchangeDN, но это имеет смысл только в случе несовпадения DisplayName и MailboxDisplayName.
Ссылку на ваш блог скинул один товарищ, теперь я ваш постоянный читатель 🙂
Скрипт это супер. Но раскажите (для особых) еще как его запустить
2Fanta
Например, используя PowerGUI Script Editor. Или прямо из Powershell’а.
Спасиб! Как раз нужно было!