Freigeben über


about_WMI

Kurze Beschreibung

Die Windows-Verwaltungsinstrumentation (WMI) verwendet das Common Information Model (CIM), um Systeme, Anwendungen, Netzwerke, Geräte und andere verwaltbare Komponenten des modernen Unternehmens darzustellen.

Lange Beschreibung

Die Windows-Verwaltungsinstrumentation (WMI) ist die Implementierung von Web-Based Enterprise Management (WBEM), dem Branchenstandard von Microsoft.

Der klassische WMI verwendet DCOM, um mit vernetzten Geräten zu kommunizieren, um Remotesysteme zu verwalten. Windows PowerShell 3.0 führt ein CIM-Anbietermodell ein, das WinRM verwendet, um die Abhängigkeit von DCOM zu entfernen. Dieses CIM-Anbietermodell verwendet auch neue WMI-Anbieter-APIs, mit denen Entwickler Windows PowerShell-Cmdlets in systemeigenem Code (C++) schreiben können.

Verwechseln Sie WMI-Anbieter nicht mit Windows PowerShell-Anbietern. Viele Windows-Features verfügen über einen zugeordneten WMI-Anbieter, der ihre Verwaltungsfunktionen verfügbar macht. Um WMI-Anbieter abzurufen, führen Sie eine WMI-Abfrage aus, die Instanzen der __Provider WMI-Klasse abruft, z. B. die folgende Abfrage.

Get-WmiObject -Class __Provider

DREI KOMPONENTEN VON WMI

Die folgenden drei Komponenten von WMI interagieren mit Windows PowerShell: Namespaces, Anbieter und Klassen.

WMI-Namespaces organisieren WMI-Anbieter und WMI-Klassen in Gruppen verwandter Komponenten. Auf diese Weise ähneln sie .NET Framework-Namespaces. Namespaces sind keine physischen Speicherorte, sondern eher logische Datenbanken. Alle WMI-Namespaces sind Instanzen der __Namespace Systemklasse. Der WMI-Standardnamespace lautet root/cimv2 (seit Microsoft Windows 2000). Um Windows PowerShell zum Abrufen von WMI-Namespaces in der aktuellen Sitzung zu verwenden, verwenden Sie einen Befehl mit dem folgenden Format.

Get-WmiObject -Class __Namespace

Um WMI-Namespaces in anderen Namespaces abzurufen, verwenden Sie den Namespace-Parameter, um den Speicherort der Suche zu ändern. Der folgende Befehl findet WMI-Namespaces, die root/cimv2/Applications sich im Namespace befinden.

Get-WmiObject -Class __Namespace -Namespace root/cimv2/applications

WMI-Namespaces sind hierarchisch. Daher erfordert das Abrufen einer Liste aller Namespaces in einem bestimmten System eine rekursive Abfrage ab dem Stammnamespace.

WMI-Anbieter machen Informationen zu verwaltbaren Windows-Objekten verfügbar. Ein Anbieter ruft Daten aus einer Komponente ab und übergibt diese Daten über WMI an eine Verwaltungsanwendung, z. B. Windows PowerShell. Die meisten WMI-Anbieter sind dynamische Anbieter, was bedeutet, dass sie die Daten dynamisch abrufen, wenn sie über die Verwaltungsanwendung angefordert werden.

SUCHEN VON WMI-KLASSEN

In einer Standardinstallation von Windows 8 gibt es mehr als 1.100 WMI-Klassen in root/cimv2. Mit diesen vielen WMI-Klassen wird die Herausforderung zur Identifizierung der geeigneten WMI-Klasse, die zum Ausführen einer bestimmten Aufgabe verwendet werden soll, identifiziert. Windows PowerShell 3.0 bietet zwei Möglichkeiten, WMI-Klassen zu finden, die sich auf ein bestimmtes Thema beziehen.

Um z. B. WMI-Klassen im WMI-Namespace zu finden, die root/cimv2 mit Datenträgern zusammenhängen, können Sie eine Abfrage wie die hier gezeigte verwenden.

Get-WmiObject -List *disk*

Um WMI-Klassen zu finden, die mit dem Arbeitsspeicher zusammenhängen, können Sie eine Abfrage wie die hier gezeigte verwenden.

Get-WmiObject -List *memory*

Die CIM-Cmdlets bieten auch die Möglichkeit, WMI-Klassen zu ermitteln. Verwenden Sie dazu das Get-CimClass Cmdlet. Der hier gezeigte Befehl listet WMI-Klassen im Zusammenhang mit Video auf.

Get-CimClass *video*

Die Registerkartenerweiterung funktioniert beim Ändern von WMI-Namespaces und macht daher die Verwendung der Registerkartenerweiterung zu leicht auffindbaren Unter-WMI-Namespaces. Im folgenden Beispiel listet das Get-CimClass Cmdlet WMI-Klassen im Zusammenhang mit Den Energieeinstellungen auf. Um ihn zu finden, geben Sie den root/cimv2 Namespace ein, und drücken Sie dann mehrmals die TAB-TASTE, bis der Power-Namespace angezeigt wird. Hier ist der Befehl:

Get-CimClass *power* -Namespace root/cimv2/power