Проверка размера базы Exchange с помощью PowerShell является ключевым пунктом для различных сценариев обслуживания базы, в качестве примера сюда можно отнести создание нового почтового ящика в базе с меньшим размером, либо создание отчета. К сожалению, данная простая на первый взгляд задача выполнялась в Exchange 2007 очень запутанна. Это связано с тем, что командлет Get-MailboxDatabase не возвращал размер базы. Если же вам нужен размер базы, приходилось извращаться и писать довольно сложный код.
Exchange 2007
Существуют различные методы, с помощью которых вы можете получить нужную информацию о базе в Exchange 2007. Ниже я привожу интересный пример от Gary Siepser; в котором приведена однострочная конструкция которая получает размер базы используя WMI:
Get-MailboxDatabase | foreach-object {add-member -inputobject $_ -membertype noteproperty -name mailboxdbsizeinGB -value ([math]::Round(([int64](get-wmiobject cim_datafile -computername $_.server -filter (‘name=”’ + $_.edbfilepath.pathname.replace("\","\\") + ””)).filesize / 1GB),2)) -passthru} | Sort-Object mailboxdbsizeinGB -Descending | format-table identity,mailboxdbsizeinGB
Exchange 2010
К счастью, командлет Get-MailboxDatabase в Exchange 2010 выдает нужную информацию сразу же. Все что вам нужно сделать, так это использовать параметр Status и вывести поле DatabaseSize. Пример:
Get-MailboxDatabase -Status | select ServerName,Name,DatabaseSize
Я довольно давно использую данный метод в Exchange 2010 и публикую эту статью только потому, что обнаружил что некоторые коллеги получают размер базы старым способом из Exchange 2007.
Полезная информация
Для новичков в SEO и заработке в интернет хочу порекомендовать интересный блог – roumik.ru. Большое количество интересных статей.
One Comment