Eine wesentlich mächtigere Funktion als das reine Abfragen von Informationen ist die Ausführung von Aktionen auf dem eigenen und auf fremden Computern. Schaut man in der WMI-Klassendokumentation unter Win32_OperatingSystem nach, dann sieht man, dass einige Properties Read-only-Status haben, während andere schreibbar sind.
Ein Property, das man setzen kann, ist Description. Mit dem Befehl WMIC PATH Win32_OperatingSystem Set Description=“Mein toller Computer“ lässt sich die Beschreibung ändern, die man beispielsweise mit dem Befehl NET VIEW \<Computername> angezeigt bekommt oder wie sie in der Systemsteuerung – System dargestellt wird, siehe Bild 7. Der Versuch Read-only-Properties zu setzen, wird mit einem Fehler quittiert. WMIC PATH Win32_OperatingSystem Set NumberOfCores=32 ist zum Scheitern verurteilt.
Ein weiteres Beispiel für das Setzen von Properties ist WMIC PATH Win32_OSRecoveryConfiguration SET AutoReboot=FALSE, WriteDebugInfo=FALSE. Dieser Befehl sorgt dafür, dass nach einem Bluescreen kein automatischer Reboot erfolgt. Auf diese Weise kann man sehen, welcher Treiber den Bluescreen verursacht hat. Außerdem wird die Erstellung eines Kernel-Dumps deaktiviert. Das ist für alle Benutzer sinnvoll, die bei einem Absturz auf das mühselige Analysieren des Dumps verzichten möchten.
Darüber hinaus besitzen viele WMI-Klassen Methoden, die man aufrufen kann. Sie haben einen oder mehrere Parameter. Die Klasse Win32_OperatingSystem besitzt beispielsweise die Methode Win32Shutdown zum Herunterfahren, Neustart oder Abmelden. Es ist zwingend erforderlich, eine WHERE-Clause zu benutzen, auch wenn eine Klasse wie Win32_OperatingSystem nur aus einer Zeile besteht.
Um den angemeldeten Benutzer auf dem Rechner w7-lab-ch auszuloggen, verwendet man die Anweisung WMIC /NODE:“w7-lab-ch“ /USER:xxx /PASSWORD:yyy PATH Win32_OperatingSystem WHERE (Primary = TRUE) CALL Win32Shutdown 4. In diesem Beispiel wird die Methode Win32Shutdown mit dem Parameter 4 aufgerufen. Dass der Wert 4 „Forced Logoff“ bedeutet, lässt sich der Dokumentation entnehmen.
Wenn man sich auf einem anderen Rechner per Remote Desktop einloggen möchte und feststellt, dass man vergessen hat, die Remote Desktop Services zu aktivieren, kann das mit WMIC RDTOGGLE WHERE (AllowTSConnections=0) CALL SetAllowTSConnections 1 nachgeholt werden. Die Firewall muss dazu allerdings WMI-Befehle durchlassen.
Neueste Kommentare
Noch keine Kommentare zu WMI richtig nutzen: Windows mit Unix-Power verwalten
Kommentar hinzufügenVielen Dank für Ihren Kommentar.
Ihr Kommentar wurde gespeichert und wartet auf Moderation.