SCOM 2007 R2 – Пакетный перевод агентов в Maintenance Mode

imageВ окружении с большим количеством агентов мониторинга 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 — How to Put a Monitored Object into Maintenance Mode in Operations Manager 2007

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)

System Center Operations Manager Forums > Extensibility > Setting all entities to maintenance based on a particular class

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