В процессе работы с 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.
Обратная ссылка: System Center 2012 Operations Manager – Обновляемся до уровня SP1 и перебираемся на Windows Server 2012 и SQL Server 2012 « ИТ Блог Алексея Максимова /
Обратная ссылка: System Center 2012 Operations Manager – Обновляемся до уровня SP1 и перебираемся на Windows Server 2012 и SQL Server 2012 | vMind.ru /