Zum Inhalt springen

WMI und CIM

Core
Lernziele
  • Systeminformationen mit Get-CimInstance lokal und remote abfragen

Windows Management Instrumentation (WMI) und Common Information Model (CIM) sind Technologien zur Verwaltung und Überwachung von Windows-Systemen. Während WMI seit langem verfügbar ist und auf DCOM basiert, bietet CIM eine modernere Schnittstelle, die typischerweise über das WS-Management-Protokoll kommuniziert. PowerShell stellt Cmdlets bereit, die den Zugriff auf beide Technologien ermöglichen – jedoch wird Get-CimInstance für neue Skripte empfohlen.

  • WMI:
    WMI ist eine ältere Technologie, die auf DCOM basiert und seit Windows 2000 existiert. Es wird oft über das Cmdlet Get-WmiObject angesprochen, das jedoch mittlerweile als veraltet gilt.

  • CIM:
    CIM ist der standardisierte Ansatz zur Systemverwaltung und nutzt WS-Management. Mit Get-CimInstance erhältst du CIM-Objekte, die im Wesentlichen denselben Inhalt wie WMI-Objekte haben, aber moderner und effizienter übertragen werden.

Dieses Beispiel zeigt, wie du Informationen über das Betriebssystem eines lokalen Computers abrufen kannst:

Terminal-Fenster
# Ruft Informationen über das Betriebssystem ab
$os = Get-CimInstance -ClassName Win32_OperatingSystem
$os | Format-List Caption, Version, BuildNumber, OSArchitecture

Hier wird das Cmdlet verwendet, um grundlegende Informationen über das Computersystem zu erhalten:

Terminal-Fenster
# Ruft Informationen über das Computersystem ab
$computer = Get-CimInstance -ClassName Win32_ComputerSystem
$computer | Format-List Manufacturer, Model, TotalPhysicalMemory

Ein großer Vorteil von Get-CimInstance ist die vereinfachte Remote-Abfrage. Beispiel:

Terminal-Fenster
# Ruft Betriebssysteminformationen von einem Remote-Computer ab
Get-CimInstance -ClassName Win32_OperatingSystem -ComputerName PSLAB-02 |
Select-Object CSName, Caption, Version, LastBootUpTime
Klasse Inhalt
Win32_LogicalDisk Laufwerke und freier Speicher
Win32_Processor Prozessoren
Win32_BIOS BIOS und Seriennummer
Win32_Service Dienste mit zusätzlichen Informationen (Startkonto)
Win32_NetworkAdapterConfiguration Netzwerkeinstellungen
Terminal-Fenster
Get-CimInstance Win32_LogicalDisk -Filter "DriveType = 3" |
Select-Object DeviceID, @{ n = 'FreiGB'; e = { [math]::Round($_.FreeSpace / 1GB, 1) } }

Die Klassen findest du mit Get-CimClass -ClassName Win32_*.

3. Unterschiede zwischen Get-CimInstance und Get-WmiObject

Abschnitt betitelt „3. Unterschiede zwischen Get-CimInstance und Get-WmiObject“
  • Kommunikationsprotokoll:

    • Get-WmiObject: Nutzt DCOM, was in Netzwerken mit strengen Firewall-Regeln problematisch sein kann.
    • Get-CimInstance: Nutzt WS-Management (WinRM), was moderner, sicherer und oft besser kompatibel mit Remote-Szenarien ist.
  • Performance und Fehlerbehandlung:
    Get-CimInstance bietet eine bessere Fehlerbehandlung und leichtere Konfiguration für Remote-Zugriffe.

  • Empfohlene Nutzung:
    Für neue Skripte wird Get-CimInstance empfohlen, da es zukunftssicher ist und von Microsoft aktiv weiterentwickelt wird.

  • Verwende Get-CimInstance:
    Nutze für neue Projekte immer Get-CimInstance, um von den Vorteilen des WS-Management-Protokolls zu profitieren.

  • Remote-Zugriffe konfigurieren:
    Stelle sicher, dass auf Remote-Computern WinRM aktiviert und richtig konfiguriert ist, um CIM-Abfragen durchzuführen.

  • Fehlerbehandlung:
    Implementiere try/catch-Blöcke, um Fehler bei Remote-Abfragen oder Verbindungsproblemen abzufangen.

  • WMI vs. CIM:
    Beide Technologien liefern ähnliche Daten, aber CIM (über Get-CimInstance) nutzt moderne Protokolle und bietet bessere Unterstützung für Remote-Management.
  • Get-CimInstance:
    Ein leistungsfähiges Cmdlet, das es dir ermöglicht, lokale und entfernte Systeminformationen effizient abzurufen.
  • Remote-Verwaltung:
    Durch die Nutzung von WS-Management eignet sich CIM hervorragend für sichere und zuverlässige Remote-Abfragen.

Diese Beispiele und Best Practices helfen dir, den vollen Nutzen aus der modernen Systemverwaltung mit CIM in PowerShell zu ziehen.