Windows Management Instrumentation (WMI)

Eintrag zuletzt aktualisiert am: 08.06.2007

Die Windows Management Instrumentation (WMI) ist ein objektorientiertes Rahmenwerk und ein Protokoll zum Zugriff auf alle möglichen Arten von System- und Netzwerkinformationen. WMI ermöglicht auch den Zugriff auf Informationen aus Quellen wie Registry, Dateisystem und Ereignisprotokollen, die durch andere Einzelkomponenten bereits abgedeckt sind. Während WMI den Vorteil der Einheitlichkeit bietet, sind die speziellen Komponenten im konkreten Anwendungsfall oft etwas einfacher zu handhaben. WMI ist weitaus komplexer als andere Komponenten.

Die Windows Management Instrumentation (WMI) ist ein Windows-Systembaustein zum Zugriff auf System- und Netzwerkinformationen. Mit WMI kann man
  • Systeminformationen über einzelne Systembausteine oder ganze Mengen von Systembausteinen auslesen
  • Systeminformationen verändern
  • Aktionen ausführen
  • sich über Veränderungen im System informieren lassen.

WMI ist die Microsoft-Implementierung des Web Based Enterprise Managements (WBEM). WBEM ist ein Standard der Desktop Management Task Force (DMTF) für das Netz- und Systemmanagement, also zur Verwaltung von Netzwerk- und Systemressourcen (z.B. Hardware, Software, Benutzer). WBEM wurde ursprünglich von BMC Software, Cisco Systems, Compaq, Intel und Microsoft entwickelt und später an die DMTF übergeben. Aus historischen Gründen findet man in WMI-Tools häufig noch die Bezeichnung WBEM.

Der FCL-Namespace System.Management ist die .NET-Implementierung eines Meta-Objektmodells für die Windows Management Instrumentation (WMI). Anders als bei ADSI ist die WMI in .NET nicht ein Wrapper für die entsprechende COM-Komponente, sondern eine eigene Implementierung.
Meta-Objektmodell versus Wrapper

Ebenso wie in COM ist die .NET-Implementierung auch ein Meta-Objektmodell. Für .NET gibt es aber zusätzlich einen sehr hilfreichen Wizard, der eine Wrapper-Klasse für eine WMI-Klasse generiert. Das reduziert nicht nur die Komplexität von WMI, sondern ermöglicht es sogar, die Intellisense-Unterstützung von Visual Studio .NET (oder anderen Editoren, die die .NET-Reflection zur Eingabeunterstützung nutzen) zu verwenden. Für einige Operationen (z.B. die Suche mit der WMI Query Language) ist aber weiterhin das Meta-Objektmodell zwingend erforderlich.