Проверка состояния баз Exchange

Небольшой скрипт для системы проверки состояния баз Exchange. Он проверяет состояние баз, и записывает данные в файл. При наличии отмонтированных баз, баз с ошибкой синхронизации или любых проблем в файл выводится информация о текущем состоянии всех баз Exchange в организации. Так же сработает при любых проблемах с базами в DAG (ошибки синхронизации и прочее).

Используется совместно с Zabbix. Агент Zabbix производит проверку файла — если размер файла больше «0», то срабатывает триггер и сигнализирует об ошибке баз.

Скрипт запускается через планировщик каждую минуту.

Сам скрипт:

cls
add-pssnapin Microsoft.Exchange.Management.PowerShell.E2010
Sleep 5
$my_Path_File_StatusCheck = "C:\Script\Exch_DB_Status\dbStatus.txt"
$myVar_Error = 0
$Array1 = Get-MailboxDatabase -Status | Get-MailboxDatabaseCopyStatus
ForEach ($Entry in $Array1) {
Write-host “База: “$Entry.name " ___ " "Статус: " $Entry.status
If (($Entry.Status -eq "Mounted") -or ($Entry.Status -eq "Healthy")){
Write-host “OK“
}
Else {
Write-host “PROBLEM“
$myVar_Error = 1
}
}
if ($myVar_Error -ne "0") {
$Array1 | Select-Object name, status | export-csv $my_Path_File_StatusCheck -Delimiter "," -encoding utf8 -NoTypeInformation
Write-host “-----“
Write-host “ERROR“
}
if ($myVar_Error -eq "0") {
clear-content $my_Path_File_StatusCheck
Write-host “----“
Write-host “NOT PROBLEM“
}

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *