SCOM 2012 - Резервное копирование Unsealed MP

imageВ процессе работы с System Center 2012 Operations Manager (SCOM) может создаваться некоторое количество пакетов управления (Management Pack, MP), в которых мы сохраняем переопределения (Overrides) или же собственные мониторы (Monitors) / правила (Rules) и т.п. объекты. Время от времени эти кастомизированные настройки могут меняться, и для того, чтобы организовать их сохранность, можно воспользоваться процедурой экспорта этих незапакованных (Unsealed) пакетов управления в xml файлы.

Приведём пример простого PowerShell скрипта, который будет выполнять процедуру экспорта MP, создавая структуру каталогов в соответствии с названием и номером версии этих MP.

#

# Блок переменных для резервного копирования MP

# $BackupPath - Корневой каталог для сохранения MP

#

$BackupPath = "\\FileServer\SCOM-UnsealedMP-Backup$"

$CurrentServer = [System.Net.Dns]::GetHostEntry([System.Net.Dns]::GetHostName()).HostName

#

# Блок переменных для уведомлений по электронной почте в случае проблем экспорта

# $gvEmailFrom – Email адрес отправителя

# $gvEmailTo – Email адрес получателя (например адрес группы рассылки для Администраторов SCOM)

# $gvSMTPServer – FQDN имя почтового сервера

#

$gvEmailFrom = "SCOM-UnsealedMP-Backup@holding.com"

$gvEmailTo = "DST-SCOM-Operators@holding.com"

$gvSMTPServer = "Mail.holding.com"

#

# Блок отсылки уведомляющего письма об ошибках выполнения скрипта

#

Trap {

If ($Error){

    $vEmailSubj = "SCOM Unsealed MP Backup Error"

      $vEmailBody = "System Center Operations Manager Unsealed Management Packs Backup Error on server " + $CurrentServer + `

      "`n`nError : " + $Error

      $vSMTP = New-Object Net.Mail.SMTPClient($gvSMTPServer)

      $vSMTP.Send($gvEmailFrom, $gvEmailTo, $vEmailSubj, $vEmailBody)

      }

Break

}

#

# Функция для создания структуры каталогов

#

Function Check-Folder ($Folder) {

      $CatExists = Test-Path -Path $Folder

      If ($CatExists -eq $False) {New-Item $Folder -type directory}

}

#

# Блок процедуры резервного копирования MP

#

Check-Folder $BackupPath | Out-Null

Import-Module OperationsManager

$UnsealedMPs = Get-SCOMManagementPack | Where {$_.Sealed -eq $False}

ForEach ($MP in $UnsealedMPs) {

      $MPFolder = $BackupPath + "\" + $MP.FriendlyName

      Check-Folder $MPFolder | Out-Null

      $FullPath = $MPFolder + "\" + $MP.Version

      If (!(Test-Path -Path $FullPath)) {

            New-Item $FullPath -type directory | Out-Null

            Export-SCOMManagementPack -ManagementPack $MP -Path $FullPath

      }                

}    

Этот скрипт ставим на периодическое выполнение в планировщик заданий на сервере управления SCOM, вызывая его командой:

PowerShell.exe -NoProfile -command "C:\Scripts\SCOM-UnsealedMP.ps1"

При этом нужно понимать, что после внесения очередных изменений в наши пакеты управления, нам достаточно поменять их версию, и при следующем запуске скрипта будет создан подкаталог с номером этой версии и в него будет сделана выгрузка свежей версии MP.

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