System-Administration mit Microsofts PowerShell Teil 7
Windows Management Instrumentation (WMI) im Einsatz
![]() |
Im siebten Teil der PowerShell-Artikelserie zeigt SearchNetworking, wie mit Hilfe des Cmdlets get-wmiobject auf die WMI-Schnittstelle zur Systemverwaltung zugegriffen wird.
Über WMI kann objektbasiert auf das Computersystem (z.B. Platten,
Eine Liste samt Dokumentation der verfügbaren Klassen ist unter der am Ende angegebenen Adresse zu finden.
Ermittlung der verfügbaren WMI-Klassen
Welche Klassen auf dem verwendeten Computer aktuell bereitstehen, kann über das Cmdlet get-wmiobject ermittelt werden. Der allgemeine Aufbau sieht dabei wie folgt aus:
get-wmiobject [-computername <string>] -list
Der Zugriff über get-wmiobject ist sogar auf Remotemaschinen möglich, indem der Parameter -computername auf den gewünschten Rechnernamen gesetzt wird. Dabei muss auf der Remotemaschine noch nicht einmal die PowerShell installiert sein, lediglich WMI wird vorausgesetzt. Natürlich müssen auch die Berechtigungen auf WMI so gesetzt sein, dass der PowerShell-Anwender darauf Zugriff hat.
Der Parameter -computername kann bei allen weiteren Aufrufvarianten von get-wmiobject eingesetzt werden.
Ermitteln aller Instanzen einer Klasse
Um alle Objekte einer bestimmten Klasse aufzulisten, wird der Parameter -class gesetzt. Als Beispiel sollen alle installierten Anwendungen ermittelt werden. Diese Informationen befinden sich in Objekten des Typs Win32_Product. Der Aufruf sieht damit folgendermaßen aus:
get-wmiobject -class Win32_Product
Die zurückgelieferten Objekte können natürlich auch in der PowerShell-Pipeline weiterverarbeitet werden. Sollen etwa alle verfügbaren Eigenschaften der Objekte ausgegeben werden und nicht nur die von der Standardausgabe ausgewählten, kann dies über select-object erreicht werden.
get-wmiobject -class Win32_Product | select-object -property *
Auswahl der Objekte über WQL
WMI kennt zur Auswahl bestimmter Objekte die Abfragesprache WQL (WMI Query Language). Diese lehnt sich an
get-wmiobject -query „select * from Win32_Printer where name=‘HP Laserjet‘“
Objekteigenschaften ändern
Die meisten über WMI verwalteten Informationen sind nur lesbar, einige lassen sich aber dennoch ändern. Im folgenden Beispiel soll die Bezeichnung des Laufwerks C: geändert werden:
get-wmiobject -class Win32_LogicalDisk -filter „deviceid=‘c:‘“ | foreach { $_.volumename = „Boot“; $_.Put() }
Dabei wird zunächst das passende Win32_LogicalDisk-Objekt ermittelt, diesmal über den Parameter -filter, der eine verkürzte Form der WQL-Abfrage darstellt. Anschließend wird über foreach das einzige zurückgegebene Objekt bearbeitet. $_ repräsentiert dieses Objekt in der Schleife, dessen Eigenschaft „volumename“ gesetzt wird. Bei solchen Änderungen ist es erforderlich, die Methode Put des Objekts aufzurufen, sonst gehen sie verloren.
Zum sinnvollen Einsatz von WMI ist es sehr hilfreich, die Dokumentation zu überfliegen. Denn gerade bei den ersten Schritten mit WMI ist es nicht einfach, zu den gewünschten Informationen zu gelangen.
Im nächsten Teil der PowerShell-Artikelserie wird gezeigt, wie von der PowerShell aus auf COM-Objekte, etwa zur Fernsteuerung von Anwendungen, zugegriffen wird.
Microsoft Deutschland GmbH
Firmenprofil
Kontakt
-
RE(5): Kein Ruhezustand mehr bei Vista???
posted am 11.03.2010 um 14:22 von Only_Cisco
-
Laufwerksbuchstabe für 2. Platte in Windows98 ändern?
posted am 11.03.2010 um 09:51 von Vince
-
RE(2): WPA-PSK + WPA2-PSK gleichzeitig einstellen?
posted am 11.03.2010 um 09:49 von WLAN-Meister
-
ZyWall 35 - Wrong product Model
posted am 09.03.2010 um 17:58 von nicht registrierter User
-
RE(2): 3GP-Videos in Windows Mediaplayer abspielen?
posted am 09.03.2010 um 15:12 von Fachwirt
Follow us!

















(nicht registrierter User)
Kommentar abschicken