headermask image

Как узнать размер базы Exchange с помощью PowerShell

Проверка размера базы 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. Большое количество интересных статей.

Print This Post Print This Post
Похожие посты
  • Как узнать установленную версию Powershell
  • Удаленное подключение к Exchange 2010 с помощью Powershell…
  • Установка зависимостей Exchange 2010 в Windows Server 2008 R2
  • PowerShell Plus for Free
  • Экспорт и импорт почтового ящика в Exchange Server 2010. EMC
  • Обновляем старые скрипты на их PowerShell аналоги
  • Отправка SMTP сообщений с помощью PowerShell. Часть 3
  • Установка необходимых компонент для Exchange 2010 в Windows 2008 SP2
  • Перевод базы Exchange в состояние Clean Shutdown с помощью Eseutil
  • Архитектура управления Exchange 2010 – использование одной машины для управления несколькими организациями Exchange 2010, часть 3
  • One Comment

    1. Я получаю так:

      Get-MailboxDatabase | foreach {$m = $_.Servername + “\” +$_.Name; dir “\\$($_.ServerName)\$($_.EdbFilePath.Pathname.Replace(‘:’, ‘$’))”} | select @{Name=”Name”;Expression={$m}},@{name=”Size”;expression={$_.Length}}

      1. Ralfeus on October 11th, 2010 at 6:15 pm