Das nachgelagerte Ticketsystem erwartet den Hostnamen in einem festen Feld? Statt eines Dauerläufer-Dienstes erledigt ein Command Notification Channel das Anreichern jedes neuen Alarms.
Wer Alarme aus Operations Manager an ein Ticketsystem oder eine Leitstelle weiterleitet, kennt das Problem: Das Zielsystem erwartet bestimmte Informationen an einer festen Stelle – etwa den Hostnamen, die Anwendung oder die zuständige Gruppe. SCOM-Alarme bringen dafür zehn frei verwendbare Felder mit: CustomField1 bis CustomField10.
Der erste Ansatz: ein Dienst im Dauerlauf
In unserer Community wurde 2011 ein PowerShell-Skript vorgestellt, das als Windows-Dienst lief und im Zehn-Sekunden-Takt alle neuen Alarme um Informationen in den Custom Fields ergänzte. Das funktioniert, greift aber tief ins System ein und fragt ständig die Datenbank ab – auch wenn gar keine neuen Alarme da sind.
Eleganter: der Command Notification Channel
Ein Community-Mitglied schlug die bessere Lösung vor: Ein Command Channel ruft für jeden neuen Alarm ein Skript auf und übergibt dabei die Alarm-ID. Das Skript ergänzt genau diesen einen Alarm.
Das Skript
param([Parameter(Mandatory)] [string]$AlertId)
Import-Module OperationsManager
New-SCOMManagementGroupConnection -ComputerName localhost
$alert = Get-SCOMAlert -Id $AlertId
if ($alert) {
$alert.CustomField1 = $alert.NetbiosComputerName
$alert.CustomField2 = $alert.MonitoringObjectPath
$alert.Update('Custom Fields durch Command Channel ergänzt')
}
Der Channel
Unter Administration › Notifications › Channels › New › Command:
| Feld | Wert |
|---|---|
| Full path of the command file | C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe |
| Command line parameters | -NoProfile -ExecutionPolicy Bypass -File "C:\Scripts\Update-AlertFields.ps1" -AlertId "$Data[Default='NotPresent']/Context/DataItem/AlertId$" |
| Startup folder | C:\Scripts |
Anschließend einen Subscriber mit diesem Channel anlegen und eine Subscription erstellen, die die gewünschten Alarme abdeckt.
Worauf Sie achten sollten
- Das Skript läuft im Kontext des Notification Action Account auf dem Management Server, der die Benachrichtigungen verarbeitet. Dieses Konto braucht Rechte, um Alarme zu ändern.
- Soll das Ticketsystem erst nach der Anreicherung informiert werden, nutzen Sie für die Weiterleitung eine zweite Subscription mit Verzögerung oder lassen das Skript die Weiterleitung selbst anstoßen.
- Bei sehr vielen Alarmen pro Minute lohnt ein Blick auf die Laufzeit des Skripts – jede Ausführung startet einen eigenen PowerShell-Prozess.
Heute
Command Channels und Custom Fields gibt es unverändert in Operations Manager 2019, 2022 und 2025. Für viele Ticketsysteme existieren heute zudem fertige Connectors, die Felder direkt zuordnen. Die Anreicherung per Skript bleibt dennoch ein flexibles Werkzeug – zum Beispiel, um Zuständigkeiten aus einer CMDB in den Alarm zu schreiben.