Unser Autor, der Windows-Experte, Consultant und IT-Architekt Helge Klein erläutert in loser Folge interessante Windows-Server-Befehle. Heute: wmic.
Windows enthält mit WMI seit vielen Versionen eine Art interne Datenbank, die äußerst detaillierte Informationen über das jeweilige System speichert. Unglücklicherweise ist WMI nicht ganz zu Unrecht als komplex verschrien. Nicht zuletzt mangelt es an einer grafischen Oberfläche, um einfach durch den Wust an Daten navigieren zu können. Trotz dieser Mankos lohnt die Beschäftigung mit WMI, da es oft keine (einfache) andere Möglichkeit gibt, an benötigte Informationen heranzukommen.
Ein schönes Beispiel dafür liefert einer meiner Blog-Artikel, in dem verschiedene Möglichkeiten gezeigt werden, das Datum einer Windows-Installation zu bestimmen. Ein weiteres Beispiel: Die Fragestellung, welche Programme denn alle auf einem bestimmten Computer installiert sind, klingt trivial. Jedoch gibt es meines Wissens keine Möglichkeit, an diese Daten vollständig (und einfach) heranzukommen – außer WMI. Die entsprechende Befehlszeile ist hier beschrieben: http://s.sepago.de/helge/2010/01/14/how-to-list-all-installed-applications-from-the-command-line/.
Im zweiten Beispiel wird der Windows-Befehl wmic verwendet. Er stellt eine Art Kommandozeilenschnittstelle zu WMI dar. Die folgende Beschreibung von wmic stammt aus dem Buch Windows-Befehle für Server 2008 & Vista – kurz & gut:
***
wmic
Die WMI-Konsole ermöglicht die direkte Interaktion mit dem WMI-Dienst des lokalen oder eines entfernten Systems. Mit wmic können äußerst detaillierte Informationen abgefragt oder gesetzt werden. Der Befehl bietet eine interaktive Kommandozeile (Start durch Aufruf ohne Parameter, Beenden mit exit), kann Kommandos aber auch im Batch-Modus ausführen (Aufruf mit Parametern). Ein angehängtes /? gibt auf jeder Ebene einen passenden Hilfetext aus.
wmic path WMI-Klasse [get Attributliste [Get-Optionen]] [/format:Ausgabeformat] [/output:Ausgabedatei]
Gibt Informationen über Objektinstanzen einer WMI-Klasse aus. Mit /get kann die Ausgabe auf einzelne Attribute jedes Objekts beschränkt werden (Standard: get /all). Als Ausgabeformat kann unter anderem gewählt werden: table (Standard), list, csv (kommasepariert), htable (tabellarisch im HTML-Format) und hform (Liste im HTML-Format). Die Ausgabe kann mit /output in eine Datei umgeleitet werden.
Anstelle der etwas umständlichen Angabe von path WMI-Klasse kann einer der zahlreichen vordefinierten Aliase verwendet werden. Eine Liste derselben kann mit wmic alias get friendlyname,target erstellt werden.
wmic path WMI-Klasse set Attribut=Wert
Setzt ein Attribut auf den angegebenen Wert. Eine Liste der für eine Klasse verfügbaren Attribute erhält man mit wmic path WMI-Klasse set /?.
wmic path WMI-Klasse call Methode Parameterliste
Ruft die angegebene Methode für eine Objektinstanz der WMI-Klasse auf und übergibt dabei die Parameterliste. Auch hier können mit call /? die für eine Klasse gültigen Methoden ermittelt werden. Viele Methoden können nur auf konkrete Instanzen angewendet werden, sodass z.B. wmic os call reboot fehlschlägt, während os where „csname=‚Name‚“ call reboot nach einer Rückfrage die durch Name angegebene Betriebssysteminstanz neu startet.
Optionen
/node:{@Datei1 | Computername1} [@Datei2 | Computername2][…]
Gibt an, auf welchen Systemen der Befehl ausgeführt wird. Anstatt die Computernamen auf der Kommandozeile anzugeben, kann die Liste der Systeme aus Datei gelesen werden. Die Zielsysteme können auch unter Windows NT4 oder 2000 laufen, nur der WMI-Dienst muss dort gestartet sein.
/user:Domäne\Benutzer
Legt den Benutzer fest, unter dem der Befehl ausgeführt wird.
/password:Passwort
Legt das Passwort für Benutzer fest.
where WQL-Filter
Begrenzt die Menge der Objekte, auf die sich der Befehl bezieht, durch einen in der SQL-ähnlichen Abfragesprache WMI Query Language verfassten WQL-Filter.
Beispiele
wmic {os | computersystem | bios | cpu} list full
Geben detaillierte Informationen über das (Betriebs-)System bzw. BIOS oder Prozessor aus.
wmic process where „name=’wmic.exe'“ list full
Zeigt alle verfügbaren Informationen über den Prozess wmic.exe an.
***
Als Referenz für eigene Gehversuche sei die Beschreibung der WMI-Klassen im MSDN empfohlen.
http://msdn.microsoft.com/en-us/library/aa394554%28VS.85%29.aspx.
Helge Klein arbeitet als IT-Architekt in Köln. Er ist der Autor von SetACL , einem Tool zur Verwaltung von Windows-Berechtigungen, und Architekt des in den Citrix User Profile Manager übergegangenen sepagoPROFILE. Für den O’Reilly Verlag hat er bereits eine Reihe von Fachgutachten durchgeführt und war als Koautor von Windows-Befehle für Server 2008 & Vista – kurz & gut tätig. Helge Klein schreibt unter http://s.sepago.de/helge regelmäßig über Grundlagen und Interna der Windows-Betriebssysteme.
4 Kommentare