26 Октября, 2011

PowerShell мониторинг почтовых баз Exchange / Audit e-mail database Exchange

Dm Isu
Доброго времени суток!

Задача: Мониторинг почтовых баз MS Exchange 2010
Цель: Получать обьективную информацию о загруженности почтовых баз
(Кол-во ящиков и реальный. размер базы)

Решение: Написать скрипт для EMS (PowerShell для Exchange)

Результат: Все выгружаеться в HTML ную таблицу, пубкуйте на WEB и поглядывайте, думаю что комнубудь пригодиться, очень удобно.

╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩
Собственно кот:

#server
$SRV= "СЕРВЕР ПОЧТОВЫХ ЯЩИКОВ"
#log
$LPATH = "КУДА БУДЕМ ВЫГРУЖАТЬ .html "
######################################################################
$Count = 0
$ALLDBsize = 0
$DATE = DATE
#Заголовок отчета
Set-Content -Path $LPATH -Value '<Br>'
add-Content -Path $LPATH -Value '<CENTER>'
add-Content -Path $LPATH -Value 'Отчет о состоянии почтовых баз данных'
add-Content -Path $LPATH -Value '</Br>'
add-Content -Path $LPATH -Value '<Br>'
add-Content -Path $LPATH -Value 'Сформирован : '
Add-content -Path $LPATH -Value $DATE
add-Content -Path $LPATH -Value '</Br>'
add-Content -Path $LPATH -Value '</Br>'
add-Content -Path $LPATH -Value '[table]'
add-Content -Path $LPATH -Value '[tr]'
add-Content -Path $LPATH -Value '[td]База данных[td]Кол-во ящиков[td]Размер[/tr]'

$BD = Get-MailboxDatabase -server $SRV | Sort-Object | select Name
$BD = $BD -replace "@{Name=" -replace "}"
For([INT]$IND=0;$IND -lt $BD.Count;$IND++)
{
$AllBox = Get-Mailbox -ResultSize 10000 -Database $BD[$IND]
#Получаем размер базы
$DBsize = Get-MailboxDatabase -Status -Identity $BD[$IND] | select databasesize
$DBsize = $DBsize -replace '[)].+$' -replace '.+[(]' -replace ',','' -replace 'bytes'
$DB_cl_space = Get-MailboxDatabase -Status -Identity $BD[$IND] | select AvailableNewMailboxSpace
$DB_cl_space = $DB_cl_space -replace '[)].+$' -replace '.+[(]' -replace ',','' -replace 'bytes'
$DBsize = $DBsize - $DB_cl_space
$DBsize = $DBsize / 1073741824
$DBsize = [math]::Round($DBsize,2)
$ALLDBsize = $ALLDBsize + $DBsize
$DBsize = [string]$DBsize + ' GB'
$TMP = '[tr][td]' + $BD[$IND] + '[td]' + $AllBox.Count + '[td]' + $DBsize + '[/tr]'
Add-Content -Path $LPATH -Value $TMP
$Count = $Count + $AllBox.Count
}
$ALLDBsize = [string]$ALLDBsize + ' GB'
$Count = [string]$Count
$TMP = '[tr][td]Итого[td]' + $Count + '[td]' + $ALLDBsize + '[/tr]'
Add-Content -Path $LPATH -Value $TMP
exit
или введите имя

CAPTCHA