Периодическое снятие статистики почтовых баз является одной из обязательных операций по поддержке почтовой организации. Наткнулся в интернете на пару отличных скриптов для проведения этой операции. После небольшой доработки получается следующее.
Вывод на экран информации по количеству почтовых ящиков в базах сервера MailServer, отсортированных по имени баз:
Get-MailboxDatabase | Where-Object {$_.Server -eq "MailServer"} | Select Server, StorageGroupName, Name, @{Name="Number Of Mailboxes";expression={(Get-Mailbox -Database $_.Identity | Measure-Object).Count}} | Sort -Property Name | Format-Table -AutoSize
Вывод на экран информации по размеру баз и количеству почтовых ящиков в них, отсортированный по имени баз, выглядит следующим образом:
Get-MailboxDatabase | Where-Object {$_.Server -eq "MailServer"} | Select Identity, @{Name="Size (GB)";Expression={$objitem = (Get-MailboxDatabase $_.Identity); $path = "``" + $objitem.server + "`" + $objItem.EdbFilePath.DriveName.Remove(1).ToString() + "$"+ $objItem.EdbFilePath.PathName.Remove(0,2); $size = ((Get-ChildItem $path).length)/1048576KB; [math]::round($size, 2)}}, @{Name="No. Of Mbx";expression={(Get-Mailbox -Database $_.Identity | Measure-Object).Count}} | Sort -Property Identity | Format-table -AutoSize
Для вывода в файл вместо Format-Table можно использовать Export-Csv.