В окружении с большим количеством агентов мониторинга SCOM 2007 R2 массовый перевод этих агентов в режим обслуживания (Maintenance Mode) через UI консоль может стать весьма хлопотным занятием. На помощь в таком случае как всегда приходит Operations Manager Shell.
Например, для того чтобы перевести в Maintenance Mode все сервера в имени которых встречается “SQL”, с текущего момента сроком на 2 часа в Operations Manager Shell можно выполнить следующий нехитрый скрипт:
$Time1 = [DateTime]::Now
$Time2 = $Time1.AddMinutes(120)
$Agents = Get-Agent | Where {$_.Name –match "SQL"}
$Agents | foreach {New-MaintenanceWindow -StartTime $Time1 -EndTime $Time2 -Reason "PlannedOther" -Comment "Maintenance Mode Window" -MonitoringObject $_.HostComputer}
Здесь вместо функции AddMinutes() можно также использовать AddHours() и AddDays()
Или другой пример, когда необходимо указать конкретный диапазон дат:
[DateTime] $Time1 = "11/23/2010"
$Time1 = $Time1.ToUniversalTime()
[DateTime] $Time2 = "11/28/2010"
$Time2 = $Time2.ToUniversalTime()
$Agents = Get-Agent | Where {$_.Name –match "SQL"}
$Agents | foreach {New-MaintenanceWindow -StartTime $Time1 -EndTime $Time2 -Reason "PlannedHardwareMaintenance" -Comment "Hardware Maintenance" -MonitoringObject $_.HostComputer}
Если же в организации существуют регламентированные окна обслуживания, в период действия которых нужно обязательно по расписанию снимать с мониторинга агентов для проведения процедур обслуживания, можно поместить вызов скрипта из первого примера в планировщик задач. При этом команда запуска будет следующей:
%SYSTEMROOT%system32WindowsPowerShellv1.0powershell.exe C:MaintenanceModeStartMaintenanceModeWindow.ps1
Так же для того чтобы скрипт успешно отработал при таком вызове из планировщика задач, в начало скрипта следует добавить строки инициализации командлетов Operations Manager Shell и вызов подключения к корневому серверу управления SCOM (RMS):
$RMSServer = 'RMSServerName'
Add-PSSnapin "Microsoft.EnterpriseManagement.OperationsManager.Client";
Set-Location "OperationsManagerMonitoring::";
New-ManagementGroupConnection -ConnectionString:$RMSServer;
Set-Location $RMSServer;
Дополнительные источники информации:
System Center TechCenter- Operations Manager 2007 R2 Cmdlets - New-MaintenanceWindow
Collection of Maintenance Mode Scripts, Utilities and MPs for Opsmgr and Essentials 2007 (Updated for SCOM 2007 R2)
Добавить комментарий