Mit der "Windows Management Instrumentation" bietet Microsoft eine universelle
Schnittstelle zu allen Belangen der Systemeinstellung eines Computers. Um solche
Informationen abzurufen gibt es inzwischen eine ganze Menge Tools, entweder
von Microsoft selbst oder von Fremdherstellern, die man sich aus dem Internet
herunterladen kann. Was aber die wenigsten wissen, ist, dass Microsoft zumindest
der Professional-Version von Windows XP ein sehr mächtiges Abfrage-Tool spendiert
hat, das auf der Kommandozeile läuft: WMIC.
WMIC, die "Windows Management Instrumentation Console", besitzt zwei Modi:
entweder man ruft in einem CMD-Fenster wmic.exe auf und landet
im Konsolen-Modus, oder man bestückt den Aufruf der wmic.exe gleich
mit gültigen Parametern und bekommt das Ergebnis direkt geliefert.
Da WMIC keine eigene Oberfläche hat, besitzt es unzählige Parameter, durch
die man sich erstmal durchhangeln muss. Überblick über die globalen und weiterführenden
Parameter kann man sich verschaffen, indem man jeweils den Schalter /?
verwendet.
Globale Parameter
Globale Parameter sind solche, die den Abruf einer Systemeinstellung selbst
betreffen, d.h. wie der Abruf stattfindet. So ist es z.B. notwendig den Parameter
/USER zu benutzen, wenn man für die Abfrage keine Administratorenrechte
besitzt. Zur Abfrage eines entfernten Computers im Netzwerk muss man, neben
dem User-Parameter, auch noch /NODE und den Namen des Rechners
angeben.
Folgende globale Parameter sind verwendbar (entnommen der WMIC-Hilfe):
| /NAMESPACE |
Pfad des Namespaces, auf dem der Alias ausgeführt wird |
| /ROLE |
Pfad für die Funktion, die die Aliasdefinitionen enthält |
| /NODE |
Server, auf denen der Alias ausgeführt wird |
| /IMPLEVEL |
Client-Identitätswechselebene |
| /AUTHLEVEL |
Clientauthentifizierungsebene |
| /LOCALE |
Sprachkennung, die der Client verwenden soll |
| /PRIVILEGES |
Aktiviert oder deaktiviert alle Berechtigungen |
| /TRACE |
Gibt die Debuginformationen nach stderr aus |
| /RECORD |
Protokolliert alle Eingabebefehle und die Ausgabe |
| /INTERACTIVE |
Setzt oder setzt den interaktiven Modus zurück |
| /FAILFAST |
Setzt den FailFast-Modus oder setzt ihn zurück |
| /USER |
Benutzer für die Sitzung |
| /PASSWORD |
Kennwort für die Sitzungsanmeldung |
| /OUTPUT |
Bestimmt den Ausgabeumleitungsmodus |
| /APPEND |
Bestimmt den Ausgabeumleitungsmodus |
| /AGGREGATE |
Setzt oder setzt den Aggregatsmodus zurück |
| /AUTHORITY |
Specifies the <authority type> for the connection |
Aufruf der Hilfe zu den Parametern: wmic /<Parameter> /?
Aliase
Die abzurufenden Systemeinstellungen werden durch Aliase definiert. So bestimmt
der Alias STARTUP, dass alle Informationen bezüglich automatisch von Windows
gestarteten Programmen ausgegeben werden. Die Liste der Aliase ist aufgrund
vielen verschiedenen Systemeinstellungen sehr lang, daher hier nur eine kleine
Auswahl:
| ALIAS |
Zugriff auf die auf dem lokalen System verfügbaren Aliase |
| COMPUTERSYSTEM |
Computersystemverwaltung |
| CPU |
CPU-Verwaltung |
| DISKDRIVE |
Verwaltung des physikalischen Laufwerks |
| GROUP |
Gruppenkontenverwaltung |
| ENVIRONMENT |
Systemumgebungs-Einstellungsverwaltung |
| NICCONFIG |
Netzwerkadapterverwaltung |
| NTDOMAIN |
NT-Domänenverwaltung |
| NTEVENT |
Einträge im NT-Ereignisprotokoll |
| PARTITION |
Verwaltung von partitionierten Bereichen des physikalischen Datenträgers. |
| OS |
Verwaltung der installierten Betriebssysteme |
| PRINTER |
Druckerverwaltung |
| PROCESS |
Prozessverwaltung |
| PRODUCT |
Installationspaket-Aufgabenverwaltung |
| SERVICE |
Dienstanwendungsverwaltung |
| SHARE |
Verwaltung von gemeinsam genutzten Ressourcen |
| STARTUP |
Verwaltung von Befehlen, die automatisch bei der Benutzeranmeldung am System ausgeführt werden |
| SYSACCOUNT |
Systemkontenverwaltung |
| USERACCOUNT |
Benutzerkontenverwaltung |
Aufruf der Hilfe zu den Parametern: wmic <Alias> /?
Jeder Alias hat mindestens 5 "Aktionsparameter", die definieren was man
tun möchte, denn neben dem Abfragen von Informationen (GET und LIST), ist es
durchaus möglich Systemeinstellungen zu ändern (CREATE, DELETE, SET, etc.).
Da sich dieser Artikel lediglich mit dem Abrufen von Daten beschäftigt, sind
hier nur die ersten beiden wichtig.
| GET |
Abrufen einer Eigenschaft einer Systemeinstellung |
| LIST |
Auflisten aller Eigenschaften einer Systemeinstellung |
Weiterführende Parameter
Jeder Alias bietet im Zusammenhang mit seinen "Aktionsparametern"
weiterführende Parameter, die die Ausgabe der Information näher bestimmen.
GET erwartet zunächst den Eigenschaftsnamen oder eine
Eigenschaftsliste und optional einen der nachfolgenden Parameter:
| /VALUE |
Rückgabe des Wertes |
| /ALL |
Rückgabe der Daten und der Metadaten für
das Attribut (Standard) |
Aufruf der Hilfe zu den GET-Parametern: wmic <Alias> get /?
LIST hingegen
erwartet hingegen einen Parameter der die Aggregation der Daten näher
bestimmt:
| BRIEF |
Anzeige einer eingeschränkte Anzahl an Attributen |
| FULL |
Anzeige aller Attribute |
| INSTANCE |
Anzeige des Namens |
| STATUS |
Anzeige des Status und des Namens |
| SYSTEM |
Anzeige aller Systemattribute |
| WRITABLE |
Anzeige aller änderbaren Attribute |
Aufruf der Hilfe zu den LIST-Parametern: wmic <Alias> list /?
Alle Aliase und "Aktionsparametern" besitzen noch zwei weitere Parameter,
die es in sich haben: /EVERY und /FORMAT.
EVERY kann dazu verwendet werden, eine Eigenschaft in einem zu bestimmenden
Intervall erneut abzufragen. Hierzu wird hinter dem Parameter die Anzahl der
Sekunden angegeben. Zusätzlich kann über den Unterparameter /REPEAT
angegeben werden, wie oft die Wiederholung stattfinden soll. Ohne REPEAT
läuft die Abfrage bis sie der Benutzer abbricht.
Aufruf der Hilfe zum EVERY-Parameter: wmic <Alias> <get oder list> /every /?
Beispiel für eine Abfrage alle verfügbaren Netzwerkfreigaben in Kurzansicht
alle 5 Sekunden bis 10 Abfragen erreicht wurden:
wmic share list brief /every:5 /repeat:10
FORMAT ist der interessanteste Parameter, denn über diesen können die Daten
in ein bestimmtes Format gebracht werden, um sie in einer Datei auszugeben.
Fehlt er, so findet die Ausgabe im Command-Fenster statt, was aufgrund der
vielen Attribute, die eine Systemeinstellung haben kann, recht
unübersichtlich ist. Die Liste der Ausgabeformate ist recht lang, daher hier
nur die wichtigsten:
| Formatbezeichner |
Augabebeschreibung |
Dateiendung |
| CSV |
semikolon-separtierte Liste |
*.csv |
| HTABLE |
HTML-Tabelle |
*.htm / *.html |
| HFORM |
HTML-Tabelle für jede Eigenschaft |
*.htm / *.html |
| HXML |
HTML, formatiert wie XML |
*.htm / *.html |
| LIST |
Text als List |
*.txt |
| TABLE |
Text als Tabelle |
*.txt |
| RAWXML |
XML |
*.xml |
Aufruf der Hilfe zum FORMAT-Parameter: wmic <Alias> <get oder
list> /format /?
Beispiel für eine Abfrage aller verfügbaren Netzwerkfreigaben mit allen
Attributen als HTML-Tabelle mit Ausgabe in eine HTM-Datei:
wmic share list full /format:htable > c:\info.htm
