Die Windows Management Instrumentation (WMI) ist das Framework zur Verwaltung von Informationen und Aktionen auf Windows-basierten Betriebssystemen.
WMI stellt zudem Verwaltungsdaten für andere Komponenten des Betriebssystems und für Softwareprodukte wie SCOM (System Center Operations Manager) oder die Windows-Remote-Verwaltung bereit.
Was ist die Windows Management Instrumentation (WMI)?
WMI ist eine Plattform, die zur Verwaltung und Überwachung des Betriebssystems sowie anderer Microsoft-Anwendungen und -Dienste auf PCs, Servern und weiteren Netzwerkgeräten dient.
WMI bietet eine umfangreiche, skalierbare und benutzerfreundliche Programmierschnittstelle, die einen programmatischen Zugriff auf Informationen und Dienste auf Microsoft-verwalteten Computern und anderen vernetzten Geräten ermöglicht.
Es wird verwendet, um das Betriebssystem, Dienste und Anwendungen auf einem Rechner, einschließlich der Registry- und Dateisystemdaten, zu ermitteln und zu überwachen. Zudem wird es zur Erstellung und Verwaltung von Skripten und Programmen genutzt, die die Verwaltung und Administration des Computers automatisieren.
Die Abfragesprache WQL (Windows Query Language) wird verwendet, um Informationen abzufragen und Operationen auf dem Betriebssystem, den Rechnern und Geräten durchzuführen.
Darüber hinaus bietet WMI Zugang zu PowerShell, einem der leistungsstärksten und flexibelsten Verwaltungstools für Windows, mit dem sich Automatisierungsskripte entwickeln lassen.
WMI ermöglicht es auch, eigene Anwendungen zu entwickeln, die zusätzliche Funktionen zur Verwaltung von Windows-Systemen und Anwendungen bereitstellen.
Anwender, die den Zustand ihrer Geräte überwachen, grundlegende Fehler beheben und Leistungsdaten sammeln müssen, werden WMI als nützlich erachten.
Welchen Zweck hat WMI?
WMI ist in einem Unternehmensnetzwerk von Windows von großem Nutzen, da es den Betrieb und die Verwaltung von Netzwerkkomponenten durch die Weitergabe von Daten an andere Produkte zur Optimierung und Skalierbarkeit vereinfacht.
Der Hauptzweck von WMI ist die Bereitstellung eines einheitlichen Verwaltungs-Frameworks für sämtliche Aspekte eines Windows-Systems, wie z.B.:
- Betriebssystemkomponenten
- Prozesse und Threads
- Dienstleistungen
- Geräte
- Treiber
- Anwendungen
- Benutzerkonten
- Sicherheitseinstellungen
Der Einsatz von WMI führt zu einer Reduzierung von Kosten und Zeitaufwand in Betrieb und Entwicklung von Windows-Systemen. Außerdem ermöglicht WMI die Überwachung von Systemereignissen und das Sammeln von Leistungsdaten, um Probleme zu beheben oder Trends im Laufe der Zeit zu erkennen.
WMI wird hauptsächlich zur Automatisierung von Verwaltungsaufgaben und dem Zugriff auf Daten verwendet, ohne direkt mit dem Betriebssystem zu interagieren. Dies macht WMI zu einer hervorragenden Alternative für Administratoren und Softwareentwickler, die zeitaufwendige Prozesse automatisieren müssen.
Von der Überwachung der Systemleistung bis hin zur Erfassung von Anwendungsdaten ist mit WMI alles möglich. Es erlaubt Entwicklern, intelligentere Anwendungen zu erstellen und stellt gleichzeitig sicher, dass IT-Administratoren ihre Aufgaben mit minimalem Aufwand erledigen können.
WMI dient als Referenzimplementierung für den Zugriff auf Systeminformationen und ist ein wichtiges Werkzeug für die Verwaltung und Überwachung von Windows-Systemen. Es ist ein Grundpfeiler für Azure Machine Learning und AzureML und wird von einer Vielzahl von Drittanbieterprodukten genutzt.
Verwendung von WMI
Die Windows Management Instrumentation (WMI) ist Microsofts Implementierung von Web-Based Enterprise Management (WBEM), einer Brancheninitiative zur Entwicklung standardisierter Technologien für den Zugriff auf Corporate-Governance-Informationen.
WMI repräsentiert Systeme, Anwendungen, Netzwerke, Geräte und andere verwaltete Komponenten unter Verwendung des Industriestandards Common Information Model (CIM), das von der Distributed Management Task Force (DMTF) erstellt und verwaltet wird.
Das WMI-Design ist sehr flexibel und unterstützt eine Vielzahl von Verwaltungsaufgaben. Es bietet eine erweiterbare Architektur, die es Herstellern ermöglicht, neue WMI-Provider zu entwickeln, um neue Geräte, Anwendungen und andere Entwicklungen zu unterstützen.
Weitere Anwendungsbereiche sind:
- Umfassende Verwaltung des Windows-Betriebssystems sowie von Microsoft-Netzwerkgeräten und -diensten.
- Verbindungsaufbau zu Remotecomputern, um auf WMI-Daten zuzugreifen.
- Ermittlung von Systeminformationen, z.B. welche Programme laufen und welche Dienste eingerichtet sind.
- Abrufen von Informationen über Hardware-Spezifikationen und Ausführen von Aktionen wie Herunterfahren oder Neustarten des Systems.
- Starten von Anwendungen, Starten, Anhalten und Konfigurieren von Diensten sowie Zugriff auf Daten.
- Entwickler von Verwaltungsanwendungen können diese API verwenden, um Skripte in Visual Basic oder Windows Scripting Host (WSH) zu erstellen.
WMI-Architektur
WMI (Windows Management Instrumentation) ist eine Microsoft-Technologie, die erstmals mit Windows 2000 eingeführt wurde. Sie ermöglicht es Programmierern, Verwaltungsprogramme zu entwickeln, die mit jedem System funktionieren, das WMI unterstützt.
Betrachten wir die Architektur und die Terminologie von WMI.
Der Fluss der WMI-Architektur beginnt mit Objekten: Eine Komponente wie eine Festplatte, eine Netzwerkkarte, ein Betriebssystem oder ein Dienst ist ein verwaltetes Objekt (das über WMI verwaltet werden kann). Die WMI-Infrastruktur empfängt Daten von einem Objekt über einen Provider. Sie stellt Nachrichten an WMI bereit, empfängt diese und leitet sie an das Objekt weiter.
Ein WMI-Provider besteht aus einer DLL und einer MOF-Datei (Managed Object Format), die Ereignisse und Daten von Objekten überwacht. WMI kategorisiert Provider nach der Funktionalität, die die Schnittstelle des Providers bereitstellt.
Es gibt zahlreiche integrierte WMI-Provider in Windows, darunter einen Active Directory-Provider, einen BCD-Provider (Boot Configuration Data), einen DFS-Provider (Distributed File System), einen Ereignisprotokoll-Provider, einen Hyper-V-WMI-Provider, einen Win32-Provider, einen Registry-Provider und einen SNMP-Provider.
Die WMI-Infrastruktur ist eine Komponente des Microsoft Windows-Betriebssystems, die als WMI-Dienst (winmgmt) bekannt ist. Der WMI-Kern und das WMI-Repository sind die beiden Teile der WMI-Infrastruktur.
Das WMI-Repository ist ein hierarchischer Datenspeicher, der nach WMI-Namespaces organisiert ist, die oft als Common Information Model (CIM) bezeichnet werden. Beim Systemstart richtet der WMI-Dienst eine Reihe von Namespaces ein, darunter Root-Standard, Rootcimv2 und Root-Abonnement.
Zusätzlich erstellt der Dienst einen Standardsatz von Klassendefinitionen, der die Systemklassen Win32 und WMI umfasst. Weitere WMI-Namespaces können von zusätzlichen WMI-Providern erstellt werden, und jeder Namespace enthält mehrere WMI-Objekte.
Der WMI-Dienst fungiert als Vermittler zwischen den Providern, Verwaltungsanwendungen und dem WMI-Repository. Im Repository werden nur statische Daten zu Objekten, wie z.B. die von Providern definierten Klassen, gespeichert. WMI erhält die meisten Daten dynamisch vom Provider, wenn ein Client diese anfordert.
Ein WMI-Consumer ist eine Verwaltungsanwendung oder ein Skript, das mit der WMI-Infrastruktur kommuniziert. Über die COM-API für WMI oder die Skript-API für WMI kann ein Verwaltungsprogramm Daten abfragen, auflisten, Provider-Methoden ausführen und Ereignisse abonnieren.
WMI stellt eine standardisierte Schnittstelle für den Remote- und lokalen Abruf von Verwaltungsdaten bereit. Die einheitliche Schnittstelle abstrahiert von den Application Programming Interfaces (APIs) des Betriebssystems. Dadurch können Anwendungen und Skripte Verwaltungsdaten sammeln, ohne die Betriebssystem-API kennen zu müssen.
Wie führt man eine WMI-Abfrage aus?
Ein Merkmal der Vielseitigkeit der WMI-Plattform ist die Fähigkeit, das Repository abzufragen, um Details zu den Klassen-, Instanz- oder Schemadaten zu erhalten. Diese Metriken sind mit dem Inventar lokaler und entfernter Systeme, Betriebssysteme, Software und anderen Verwaltungsaktivitäten verbunden.
Arten von Abfragen
Im Großen und Ganzen gibt es zwei Arten von Abfragen, die verwendet werden, um Informationen aus dem WMI-Repository abzurufen:
Synchrone Abfrage: Dies ist eine Abfrage, die während der gesamten Ausführung die Kontrolle über den Betrieb Ihrer Anwendung behält. Sie ist einfacher als ein asynchroner Aufruf, da nur ein einziger Schnittstellenaufruf erforderlich ist. Bei großen Suchvorgängen oder netzwerkbasierten Anfragen kann es jedoch vorkommen, dass Ihre Anwendung einfriert.
Asynchrone Abfrage: Wenn die Geschwindigkeit eines Systems oder Netzwerks durch die Abfrage einer großen Datengruppe beeinträchtigt wird, ist eine asynchrone Abfrage die bevorzugte Methode.
WQL (WMI-Abfragesprache)
Eine der am häufigsten verwendeten Methoden zur Abfrage von WMI ist die WMI-Abfragesprache.
In der Datenbankumgebung wird SQL (Structured Query Language) und in WMI WQL verwendet. Beide haben eine ähnliche Syntaxstruktur.
Select, From und Where sind die grundlegenden WQL-Anweisungen, die verwendet werden, um die Abfrage zu starten.
Eine typische WMI-Abfrage beginnt damit, dass mit dem Befehl „Auswählen“ alle Eigenschaften einer WMI-Klasse ausgewählt werden. Das Sternchen („*“) wird verwendet, um jede Eigenschaft aus einer WMI-Klasse auszuwählen. Nach der Auswahl der Eigenschaften (eine oder mehrere Eigenschaften oder alle) kann das Schlüsselwort „From“ verwendet werden, um die abzufragende WMI-Klasse anzugeben. Die genaue Syntax kann im SQL-Cheat Sheet nachgeschlagen werden.
WQL kann über den WMI Tester (wbemtest.exe) ausgeführt werden, der standardmäßig im Windows-Betriebssystem enthalten ist. WMI-Abfragen können auch über Windows PowerShell, VBScript und die C-Sprache ausgeführt werden.
Arten von WQL-Abfragen
Die WQL-Abfragen werden verwendet, um drei verschiedene Arten von Informationen zu erhalten.
Objektabfragen: Mit diesen Abfragen können Informationen zu Windows-Systemressourcen abgerufen werden.
Ereignisabfragen: Diese Abfragen werden verwendet, um u.a. Änderungen an Ereignisprotokollen, die Initiierung von Prozessen, den Status von Diensten, die Verfügbarkeit von Computern oder den freien Speicherplatz zu verfolgen.
Schemaabfragen: Diese Abfragen werden verwendet, um Details über die Struktur des WMI-Schemas abzurufen.
Ausführen einer Abfrage
Sehen wir uns an, wie eine Objektabfrage ausgeführt wird.
Die folgende Methode beschreibt, wie WIN_32-Prozesse auf einem lokalen System überprüft werden.
Das WMI Tester-Tool wird über die Kommandozeile durch Eingabe von wbemtest.exe ausgeführt.
Das folgende Fenster wird angezeigt.
Um eine Verbindung mit dem WMI-Namespace herzustellen, der die abzufragende Klasse enthält (in den meisten Fällen RootCimv2): Klicken Sie auf die Registerkarte „Verbinden“.
Um die Abfrage auszuführen, klicken Sie wie unten gezeigt auf die Registerkarte „Abfrage“:
Geben Sie dann die Abfrage ein, für die Sie die Informationen abrufen möchten. Um beispielsweise alle Prozesse abzurufen, die auf dem lokalen System ausgeführt werden, führen Sie Folgendes aus:
select * From Win32_process
Nachdem Sie auf die Registerkarte „Anwenden“ geklickt haben, erhalten Sie die folgenden Ergebnisse.
Die obige GUI-basierte Ausführung kann auch über PowerShell an der Eingabeaufforderung durchgeführt werden:
In der PowerShell-Plattform wird der folgende Code verwendet, um die Liste aller win_32-Prozesse abzurufen:
Get-WmiObject -Class Win32_Process
Um alle Parameter der PowerShell-Abfrage abzurufen, besuchen Sie die Microsoft PowerShell-Verwaltungsseite.
Um diese Abfrage in VBScript und der C-Sprache auszuführen, bietet die Microsoft-Dokumentationsseite umfassende Informationen.
Eine andere Methode zur Abfrage des WMI-Repositorys ist der WMIC-Befehl:
- Führen Sie CMD in einer Eingabeaufforderung aus.
- Geben Sie WMIC ein und drücken Sie die Eingabetaste, um das Programm zu starten.
- Die Eingabeaufforderung ändert sich zu wmic:rootcli>.
Administratoren können von dieser Eingabeaufforderung aus WMI-Abfragen ausführen.
Um beispielsweise CPU-Informationen eines lokalen Systems zu laden, lautet der Befehl:
wmic:rootcli> WMIC CPU
Die Ergebnisse/Informationen werden in der Eingabeaufforderung angezeigt.
AddressWidth Architecture AssetTag Availability Caption Characteristics ConfigManagerErrorCode ConfigManagerUserConfig CpuStatus CreationClassName CurrentClockSpeed CurrentVoltage DataWidth Description DeviceID ErrorCleared ErrorDescription ExtClock Family InstallDate L2CacheSize L2CacheSpeed L3CacheSize L3CacheSpeed LastErrorCode Level LoadPercentage Manufacturer MaxClockSpeed Name NumberOfCores NumberOfEnabledCore NumberOfLogicalProcessors OtherFamilyDescription PartNumber PNPDeviceID PowerManagementCapabilities PowerManagementSupported ProcessorId ProcessorType Revision Role SecondLevelAddressTranslationExtensions SerialNumber SocketDesignation Status StatusInfo Stepping SystemCreationClassName SystemName ThreadCount UniqueId UpgradeMethod Version VirtualizationFirmwareEnabled VMMonitorModeExtensions VoltageCaps 64 9 To Be Filled By O.E.M. 3 Intel64 Family 6 Model 142 Stepping 10 252 1 Win32_Processor 1801 7 64 Intel64 Family 6 Model 142 Stepping 10 CPU0 100 205 1024 6144 0 6 31 GenuineIntel 1801 Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz 4 4 8 To Be Filled By O.E.M. FALSE BFEBFBFF000806EA 3 CPU TRUE To Be Filled By O.E.M. U3E1 OK 3 Win32_ComputerSystem RENEE-HP 8 51 FALSE TRUE
Weitere Informationen zu WMIC-Aliasnamen und -Verben finden Sie unter Microsoft wmic.
Häufig gestellte Fragen zu WMI
Welche Ports werden in WMI verwendet?
Die verwendeten Ports sind 49152 und 65535. Das Distributed Component Object Model (DCOM), auf dem WMI basiert, verwendet standardmäßig einen zufällig ausgewählten TCP-Port für Verbindungen zwischen 49152 und 65535.
Ist WMI veraltet?
WMI wird weiterhin unterstützt. Ab Windows 10, Version 21H1, und der halbjährlichen Kanalversion 21H1 von Windows Server wird das WMI-Befehlszeilenprogramm (WMIC) nicht mehr unterstützt.
Was sind WMI-Überwachungstools?
Es gibt viele Tools zur Überwachung von WMI. Einige sind jedoch besonders beliebt:
SolarWinds WMI Monitor mit Server- und Anwendungsmonitor
Paessler WMI Service Sensor mit PRTG
Nagios XI
Sapien WMI-Explorer
Kostenlose Tools sind WMI Explorer, Adrem Free WMI Tools
So beheben Sie WMI-Probleme
Möglicherweise treten Fehler auf, die von fehlenden Klassen bis hin zu Zugriffsverletzungen reichen, wenn Sie versuchen, auf lokale oder Remote-WMI-Daten in einer Anwendung oder einem Skript zuzugreifen. Überprüfen Sie den Microsoft WMI-Leitfaden zur Fehlerbehebung, um Lösungen für solche Fehler zu finden.
Fazit
Zusammenfassend lässt sich sagen, dass die Windows Management Instrumentation ein mächtiges Tool ist, das zur Bewältigung eines breiten Spektrums von systembezogenen Windows-Funktionen eingesetzt werden kann. WMI kann ein sehr nützliches Werkzeug für jeden sein, der mit Windows-Systemen arbeitet, auch wenn es auf den ersten Blick kompliziert erscheinen mag.