У всех админов есть необходимость видеть состояние почтовой системы постоянно. Ну, по крайней мере, по расписанию получать некую информацию, говорящую о состоянии сервера.
Я сделал себе рассылку следующей информации. Сколько у кого хранится почты, в каком хранилище лежит, кто и когда последний логинился и отключался от ящика ... ну, увидите :) Далее, вывод команды Test-ServiceHealth и Test-SystemHealth Ну, и список сервисов компьютера и их состояние. Итак, поехали.
Код рабочий, только надо подставить свои параметры. Записываем содержимое в users.ps1 и смотрим на скрипт запуска.
###Сначала, администратор должен изменить значения ###сообщения следующим образом ###section
$FromAddress="exchanget@work.lan" $ToAddress="it@work.lan" $MessageSubject="Exchange status Report" $MessageBody ="Attached is the current list of mailbox sizes." $SendingServer="mail.work.lan"
###Теперь получить статистику и сохранить ее в ###текстовом файле
### Получаем информацию о почтовых ящиках и форматируем ее Get-MailboxStatistics | Sort-Object TotalItemSize -Descending |ft @{ label="User name" ; expression={$_.DisplayName}}, @{ label="Last user accessed" ; expression={$_.LastLoggedOnUserAccount}}, @{ label="Last access date and time" ; expression={$_.LastLogonTime}}, @{ label="Last logoff time" ; expression={$_.LastLogoffTime}}, @{ label="Size in MB" ; expression={$_.TotalItemSize.Value.ToMB()}}, @{ label="Deleted in MB" ; expression={$_.TotalDeletedItemSize.Value.ToMB()}}, ItemCount, Database -autosize >users.txt
###Отправить сообщение $SMTPClient = New-Object System.Net.Mail.SMTPClient $SendingServer $SMTPClient.Send($SMTPMessage)
Так, скрипт выложен, а запускать-то его как? Вот скрипт запуска, обычный файл .cmd, его можно запускать по расписанию, теперь.
mode CON: cols=450 rem А вот вам большая длина строки, а то в powershell строка таблицы обрезается по длине строки в шеле. Если не менять режима экрана, то мы ограничим себя длиной строки в таблицах в 80 символов, а нам же мало. Ну 450 нам хватит
net use z: \\server\logs rem подключаем сетевую папку
z: Rem переходим на вновьсозданный диск
del *.txt Rem Зачищаем от текстовых файлов. Вдруг мусор остался.
PowerShell.exe -PSConsoleFile "C:\Program Files\Microsoft\Exchange Server\Bin\ExShell.psc1" -Command "./users.ps1" rem Собственно, запускаем ранее созданный скрипт rem Формат даты-времени для excell ДД,ММММ, ГГГГ ч:мм;@
del *.txt Rem Зачищаем от текстовых файлов. Мы же создали сами тут мусор
c: Rem Возвращаемся домой, на свой диск C:
net use z: /delete /yes rem отключаемся от сетевой папки
mode CON: cols=80 rem Ну и экран в исходное состояние, на всякий случай. Полезно при отладке.
И всё, теперь можно запустить по расписанию этот командник и наслаждаться диагностикой.
Вот примеры результатов
users.txt
User name Last user accessed Last access date and time Last logoff time Size in MB Deleted in MB ItemCount Database --------- ------------------ ------------------------- ---------------- ---------- ------------- --------- -------- ***************************** WORK\******** 20.03.2013 19:25:35 20.03.2013 20:04:42 7763 0 26500 MAIL\Mailbox Store\Mailbox Store ***************************** WORK\******** 20.03.2013 16:04:40 20.03.2013 18:10:39 5927 6 17941 MAIL\Mailbox Store\Mailbox Store
serveces.txt
Status Name DisplayName DependentServices ServicesDependedOn ------ ---- ----------- ----------------- ------------------ Stopped Acronis VSS Provider Acronis VSS Provider {} {rpcss} Running AcronisAgent Acronis Remote Agent Service {} {} Running AcrSch2Svc Acronis Scheduler2 Service {MMS} {RpcSs} Running AdaptecStorageManagerAgent Adaptec Storage Manager Agent {} {} Stopped AdoNavSvc AdoNavSvc {} {RPCSS} Stopped AeLookupSvc Информация о совместимости приложений {} {} Stopped ALG Служба шлюза уровня приложения {} {}
ServicesHealth.txt
Role RequiredServicesRunning ServicesRunning ServicesNotRunning ---- ----------------------- --------------- ------------------ Роль сервера True IISAdmin почтовых ящик MSExchangeADTopology ов MSExchangeIS MSExchangeMailboxAssis tants MSExchangeMailSubmissi on MSExchangeRepl MSExchangeSA MSExchangeSearch MSExchangeServiceHost MSExchangeTransportLog Search MSFTESQL-Exchange W3Svc Роль сервера True IISAdmin клиентского д MSExchangeADTopology оступа MSExchangeFDS MSExchangeIMAP4 MSExchangePOP3 MSExchangeServiceHost W3Svc Роль транспор True MSExchangeADTopology тного сервера MSExchangeEdgeSync -концентратор MSExchangeTransport а MSExchangeTransportLog Search
Ну SystemHealth у меня пуст, не могу показать :)
Вперед, админы, автоматизируйтесь и скриптуйтесь :)
Читаем остальные статьи для пользователей и админов по тегу " Компьютизмы"