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