Operations Manager kennt jede SQL-Instanz, jede Datenbank und jede Datei – oft besser als jedes Inventarsystem. So lesen Sie diese Daten per PowerShell oder SQL aus, ohne sich ein Wartungsproblem einzubauen.
Ein Datenbankadministrator wollte sein SQL-Server-Inventar neu aufbauen. Bisher lieferte Configuration Manager die Daten – kannte aber keine einzelnen Datenbanken. Operations Manager dagegen hatte durch das SQL-Server-Management-Pack bereits alles erkannt: Computer mit AD- und Betriebssysteminformationen, Netzwerkkarten, Reporting Services, SQL-Agent und Agent-Jobs, Datenbank-Engines, Datenbanken und Datenbankdateien.
Die Frage: Wie kommt man sauber an diese Daten?
Weg 1: PowerShell (empfohlen)
Der unterstützte und versionsunabhängige Weg führt über das OperationsManager-Modul. Klassen werden über ihren Anzeigenamen gefunden, ihre Instanzen samt Eigenschaften ausgelesen:
Import-Module OperationsManager
$dbClass = Get-SCOMClass -DisplayName 'SQL Server Database' | Select-Object -First 1
Get-SCOMClassInstance -Class $dbClass | ForEach-Object {
[pscustomobject]@{
Server = $_.Path
Datenbank = $_.DisplayName
Zustand = $_.HealthState
# Klassenspezifische Eigenschaft – Name je nach MP-Version prüfen:
Modell = $_.'[Microsoft.SQLServer.Windows.Database].RecoveryModel'.Value
}
} | Export-Csv C:\Temp\sql-datenbanken.csv -NoTypeInformation -Delimiter ';' -Encoding UTF8
Welche Eigenschaften eine Klasse hat, zeigt $dbClass.GetProperties(). Die genauen Klassennamen hängen von der Version des SQL-Server-Management-Packs ab.
Weg 2: SQL-Abfragen auf die Betriebsdatenbank
In der Community wurden auch direkte Abfragen genutzt, etwa gegen die generischen Views:
SELECT SourceMonitoringObjectDisplayName AS Gruppe,
TargetMonitoringObjectDisplayName AS Datenbank,
TargetMonitoringObjectPath AS Pfad
FROM RelationshipGenericView
WHERE SourceMonitoringObjectDisplayName = 'All Databases'
AND IsDeleted = 0
AND TargetMonitoringObjectPath IS NOT NULL
ORDER BY TargetMonitoringObjectPath;
Für jede Klasse existiert zudem eine eigene, von SCOM generierte View (MTV_...), teils mehrfach mit angehängten Nummern. Dieses Schema ist nicht dokumentiert und kann sich bei MP-Updates ändern.
Achtung
Abfragen gegen die Betriebsdatenbank sind nicht unterstützt und belasten die Datenbank, die SCOM selbst dringend braucht. Für regelmäßige Auswertungen sind PowerShell oder das Data Warehouse (vManagedEntity, vManagedEntityPropertySet) die bessere Wahl.
Weg 3: Data Warehouse
Das Data Warehouse enthält erkannte Objekte und ihre Eigenschaften inklusive Historie. Für Berichte – etwa „Welche Datenbanken gibt es, wie groß sind sie, seit wann existieren sie?“ – ist es die stabilste Quelle.
Heute
Die PowerShell-Cmdlets funktionieren in Operations Manager 2019, 2022 und 2025. Das aktuelle SQL-Server-Management-Pack verwendet für SQL Server 2016 und neuer eigene Klassennamen (SQL Server on Windows); prüfen Sie die Namen in Ihrer Umgebung mit Get-SCOMClass -DisplayName '*SQL*'.