Maschinensteuerungen mit dutzenden unterschiedlich benannten Diensten, Netzlaufwerke, die erreichbar sein müssen, und drei Verwaltungsgruppen, die angeblich gleich konfiguriert sind. Drei Fragen, drei Lösungen.
Ein Administrator hatte eine gewachsene SCOM-Umgebung geerbt: drei Verwaltungsgruppen an drei Standorten, die nach Firmenzukäufen „alle dasselbe tun“ sollten. Überwacht wurden Server, aber auch Steuerungsrechner für Maschinen. Daraus ergaben sich drei Fragen.
Frage 1: Muss ich jeden Dienst einzeln anlegen?
Auf den Steuerungsrechnern liefen mehrfach dieselben Dienste – vom Hersteller auf Rechner A mit 1, 2, 3 nummeriert, auf Rechner B mit 11, 12, 13. Für jeden Dienst einzeln einen Monitor in der Konsole anzulegen, wäre enorm aufwendig.
Lösung: Statt vieler einzelner Monitore einen parametrisierten Skriptmonitor, der alle Dienste nach einem Muster prüft:
param([string]$Pattern = 'MaschineSvc*')
$api = New-Object -ComObject 'MOM.ScriptAPI'
$bag = $api.CreatePropertyBag()
$gestoppt = Get-Service -Name $Pattern -ErrorAction SilentlyContinue |
Where-Object { $_.StartType -eq 'Automatic' -and $_.Status -ne 'Running' }
$bag.AddValue('Stopped', ($gestoppt.Name -join ', '))
$bag.AddValue('State', $(if ($gestoppt) { 'BAD' } else { 'OK' }))
$bag
Alternativ lassen sich viele gleichartige Dienstmonitore per PowerShell und Management-Pack-Vorlage (XML) automatisch erzeugen und importieren.
Frage 2: Wie prüfe ich, ob ein Netzlaufwerk verbunden ist?
Die Steuerungsrechner legten Protokolle auf einem gemappten Serverlaufwerk ab. Ein VBScript, das auf dem Client funktionierte, meldete im Monitor immer „nicht verbunden“.
Ursache: Der SCOM-Agent läuft als Dienst – meist unter Local System – und sieht die Laufwerkszuordnungen des angemeldeten Benutzers nicht. Für den Agenten existiert das Laufwerk schlicht nicht.
Lösung: Nicht das Mapping prüfen, sondern die Erreichbarkeit des Ziels per UNC-Pfad – und zwar mit einem Konto, das dort Zugriff hat (Run As-Konto):
$ok = Test-Path -LiteralPath '\\fileserver\maschinenlogs$\Anlage01'
Frage 3: Wie vergleiche ich Verwaltungsgruppen?
Lösung: Die nicht versiegelten Management Packs – insbesondere die Override-Packs – aus allen Verwaltungsgruppen exportieren und vergleichen:
Get-SCOMManagementPack | Where-Object { -not $_.Sealed } |
Export-SCOMManagementPack -Path "C:\Export\$env:COMPUTERNAME"
Die XML-Dateien lassen sich anschließend mit einem Vergleichswerkzeug gegenüberstellen. Zusätzlich lohnt ein Vergleich der installierten versiegelten MPs und ihrer Versionen (Get-SCOMManagementPack | Select-Object Name, Version) sowie der Run As-Konfiguration.
Heute
Alle drei Lösungen funktionieren in Operations Manager 2019, 2022 und 2025. Wer mehrere Verwaltungsgruppen betreibt, sollte Override-Packs zentral versionieren – etwa in einem Git-Repository –, damit Unterschiede gar nicht erst entstehen.