WMI richtig nutzen: Windows mit Unix-Power verwalten

Mit WMIC lassen sich auf Rechnern im Netzwerk Programme starten. Das erreicht man beispielsweise mit WMIC /NODE:xxx /USER:yyy /PASSWORD:zzz PROCESS CALL Create „notepad.exe C:temptest.txt“. Bei der Methode Create darf die WHERE-Clause ausnahmsweise weggelassen werden, weil sie sich auf keinen bestimmten Prozess der Klasse Win32_Process bezieht.

Auf Rechnern mit Vista und Windows 7 stellt man fest, dass notepad.exe zwar im Task-Manager erscheint, jedoch kein Fenster auf dem Desktop zu sehen ist. Das liegt daran, dass der lokal angemeldete Benutzer normalerweise in der Session 1 arbeitet. Bis einschließlich Windows XP wurde dafür die Session 0 genutzt, in der WMIC den Prozess anlegt. WMI erlaubt zwar die Übergabe einer Session-ID. Das muss aber mit der Fremdklasse Win32_ProcessStartup als Parameter geschehen. Die Übergabe einer anderen Klasse beherrscht das Tool WMIC jedoch nicht. Das kann nur programmatisch, etwa mit VBScript, gelöst werden.

Ähnlich lassen sich Prozesse beenden: Der Befehl WMIC PROCESS WHERE (Name=“notepad.exe“) CALL TERMINATE beendet alle Prozesse, die notepad.exe heißen. Will man nur einen bestimmten Prozess abschießen, sollte man in der WHERE-Clause ProcessID statt Name verwenden.

Mit WMIC SERVICE WHERE (Name=“WSearch“) CALL StopService oder WMIC SERVICE WHERE (Caption=“Windows Search“) CALL StopService lässt sich die Windows-Suche abschalten. Wenn immer möglich, sollte man den Kurznamen aus der Spalte Name verwenden. Der Langname aus der Spalte Caption hängt von der verwendeten Sprachversion ab. Eine Liste aller Kurznamen erhält man mit WMIC SERVICE GET Name, Caption. Neben der Methode StopService kann man einen Dienst auch mit StartService hochfahren. Weitere Methoden finden sich in der Dokumentation zur Klasse Win32_Service.

Ein recht aktuelles Beispiel ist die Verwendung freier DNS-Server zur Umgehung des Internetzensurgesetzes. Auch das kann man mit WMIC automatisieren. Allerdings benötigt man dazu zwei Schritte: Zunächst lässt man sich alle Netzwerkinterfaces mit gültiger IP-Adresse durch WMIC NICCONFIG WHERE (IPEnabled=TRUE) GET InterfaceIndex, IPAddress, DNSServerSearchOrder anzeigen.

Danach wählt man die Interfaces aus, die eine Internetverbindung haben und führt für diese den Befehl WMIC NICCONFIG WHERE (InterfaceIndex=XX) CALL SetDNSServerSearchOrder(209.59.210.167, 85.214.117.11, 78.46.89.147, 88.198.75.145, 87.118.100.175) aus, siehe Bild 8. XX ist dabei durch die Interfacenummer zu ersetzen.

VPN-Interfaces, die beispielsweise in ein Firmennetzwerk führen, lässt man unverändert. Um die DNS-Server wieder per DHCP zuweisen zu lassen, verwendet man WMIC NICCONFIG WHERE (InterfaceIndex=XX) CALL SetDNSServerSearchOrder(). Mit den Methoden der Klasse Win32_NetworkAdapterConfiguration lassen sich viele weitere Parameter setzen.

Das Ergebnis lässt sich sofort in der IPv4-Konfiguration der betroffenen Netzwerkinterfaces ablesen, siehe Bild 9. In diesem Fall wurden fünf freie DNS-Server konfiguriert. Weitere freie DNS-Server hat ZDNet zusammengestellt.

Themenseiten: Betriebssystem, Plattform, Security-Praxis, Software, Windows

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu WMI richtig nutzen: Windows mit Unix-Power verwalten

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *