28 февраля 2009

Тестирование CAS серверов Exchange

Не так давно мне достались в управление несколько серверов Exchange 2007. Когда понадобилось срочно наладить хоть какую-то систему мониторинга. Не секрет что в Exchange Management Shell есть множество командлетов для тестирования различных сервисов, все они начинаются с Test- и получить их список можно командой

get-excommand Test-*

Я решил использовать эти командлеты в скрипте который будет проверять доступность всех сервисов.

Я использовал следующий метод:

как я уже писал в предыдущем посте можно получить пароль пользователя в виде объекта PowerShell:

$pass = cat C:\scripts\securestring.txt | convertto-securestring

Записываем имя пользователя в переменную

$un = "username"

Используем эти переменные в качестве параметров для PSCredential

$mycred = new-object -typename System.Management.Automation.PSCredential
-argumentlist $un,$pass

Массив серверов который будет использоваться во время тестирования

$cas="server1","server2"

Массив url OWA:

$owaurl = "https://FQDN/owa","https://FQDN/owa"

Функция send-email, тут ее приводить не вижу смысла, легко ищется в интернетах, однако скажу что в качестве параметров функции передается заголовок и тело письма

function sndem { }

Следующие две функции выводят сообщения на консоль, если скрипт запускается не по шедулеру, а ради проверки.

#function errormsg {
# param($tstname,$trgt)
#
# Write-Host "Test " $tstname " on " $trgt", result: Fail" -foregroundcolor "red"
# }
#
#function successmsg {
# param([string]$tstname,[string]$trgt)
# Write-Host "Test" $tstname" on "$trgt", result: Success" -foregroundcolor "green"
#}


Ну теперь собственно основная функция скрипта

foreach ($siteurl in $owaurl) {
$tstowa = Test-OwaConnectivity -URL $siteurl -MailboxCredential $mycred
if ($tstowa.Result -like "Success" )
{
# successmsg "OWA connectivity" $siteurl //выводим сообщение на консоль


}
else
{
# errormsg "OWA connectivity" $siteurl
sndem "Test OWA failed!!!" $siteurl // посылаем сообщение при неудаче
}
}

Аналогично используются комндлеты test-imapconnectivity, test-popconnectivity и протчие.

Скрипт засовывается в шедулер, отрабатывает он примерно за минуту, частоту вы можете выставить сами.

Комментариев нет:

Отправить комментарий