Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

Windows PowerShell Grundkurs

Windows Management Instrumentation

Testen Sie unsere 2016 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Die Windows Management Instrumentation stellt zusätzliche Funktionen zu den in der PowerShell enthaltenen zur Verfügung. Diese dienen der Abfrage sowie der Anpassung von Objekten aus der PowerShell.
06:37

Transkript

PowerShell stellt zwar viele Commandlets bereit, und je nach vorhandenen Produkten, Features und Rollen, haben Sie die Auswahl von mehr als eintausend verschiedenen Befehlen. Dennoch gibt es Situationen, in denen kein passender Befehl gefunden werden kann. In diesen Fällen hilft ein Ausweichen auf Technologien, die möglicherweise die gewünschte Funktionalität bieten und von der PowerShell aus aufgerufen werden können. In diesem Video sehen wir uns an, wie ab PowerShell 3 mit WMI gearbeitet wird. Angenommen, wir wollen wissen, welcher Windows-Dienst automatisch gestartet wird. Das zum Standardumfang von PowerShell gehörende Commandlet "Get-Service" liefert diese Information leider nicht mit. Hier in der Standardausgabe sehe ich zwar, welcher Dienst schon gestartet ist. Ich sehe aber nicht, welcher Dienst automatisch gestartet wird. Und auch wenn ich hier noch ein "Select-Object *" anhänge, dann sehen wir zu den einzelnen Dienst-Objekten alle Eigenschaften. Auch dann sehe ich hier nicht die Information, welcher Dienst automatisch gestartet wird. Mit "Get-Service" kommen wir jetzt nicht mehr weiter. Über WMI können wir jedoch auch Informationen über Windows-Dienste abrufen, und dort wird die gewünschte Information geliefert. Das Schwierigste bei der Arbeit mit WMI ist es oftmals, den Klassennamen für die gewünschte Information zu kennen. Da hilft meist nichts anderes, als danach zu googeln. Windows-Dienste werden in WMI über die Klasse "Win32_Service" verwaltet. Die entsprechenden Objekte erhalten wir dann über das Commandlet "Get-CimInstance". Ich gebe dann hier über den Parameter "ClassName" den Klassennamen an, und für Windows-Dienste hier "Win32_Service". Die Angabe, welcher Dienst automatisch gestartet wird, ist hier gleich in der Standardausgabe mit vorgesehen. So wie hier eine Klasse für Dienste existiert, gibt es in WMI, je nach Betriebssystem, eine vierstellige Anzahl von Klassen für die unterschiedlichsten Dinge, wie Hardware, Software, die Konfiguration et cetera. Nehmen wir beispielsweise die Klasse "Win32_LogicalDisk", mit der logische Laufwerke verwaltet werden. Angenommen, wir interessieren uns nur für das Laufwerk C:. Dann könnten wir mit dem Standard-PowerShell-Filter "Where-Object" ansetzen. Hier, "Where-Object" und dann das Abfragen-Kriterium "$_.DeviceID" equals "C:" . Das funktioniert zwar, ist in der Praxis aber recht langsam. Bei so wenigen Objekten wie hier, merken wir zwar keine große Zeitverzögerung, aber wenn wir über WMI viele Objekte abfragen, wäre es besser, dem GetCimInstance gleich einen Filter mitzugeben, um die Datenmenge, die in der PowerShell verarbeitet werden muss, zu reduzieren. GetCimInstance verfügt über den Parameter-Filter. Jedoch muss das Filter-Kriterium in WMI- und nicht in PowerShell-Konventionen angegeben werden. Das könnte so aussehen: "GetCimInstance"; ich gebe wieder die Klasse an, und dann einen Filter an In WMI-Konventionen würde das so aussehen, dass wir hier die Eigenschaft verwenden. Und der Vergleichsoperator ist in WMI das Gleichheitszeichen. und ich vergleiche dann mit dem Text 'C:'. Darüber hinaus gibt es mit WQL noch eine spezielle WMI-Abfragesprache, die hier ebenfalls zum Einsatz kommen kann. Das könnte dann so aussehen: "GetCimInstance" und dann der Parameter "Query". Und die WQM-Abfrage, die könnte dann so aussehen: "SELECT * FROM Win32_LogicalDisk" ... das heißt wir tun so, als ob die Klasse eine Tabelle wäre... "WHERE DeviceID="C:" " Also es sieht ganz stark nach einer SQL-Abfrage-Sprache aus. Wie Sie aber hier gut sehen können, sind hier nicht nur PowerShell-, sondern auch spezielle WMI-Kenntnisse erforderlich. Als letztes Beispiel versuchen wir über WMI, eine Objekteigenschaft zu ändern. Nehmen wir beispielsweise vom Laufwerk "C:" die Eigenschaft "VolumeName". Dabei handelt es sich um den Laufwerksnamen, der im Explorer angezeigt wird. Und zwar, wenn ich hier mal den Windows Explorer öffne, dann finden wir den Laufwerksnamen in den Eigenschaften, und zwar hier oben, in diesem Textfeld. Um diese Eigenschaft zu setzen, suchen wir mit GetCimInstance das richtige Objekt und leiten es dann über die Pipeline an "Set-CimInstance" weiter. Das sieht dann wie folgt aus: Ich nehme jetzt hier die Variante mit dem Filter-Parameter und sage dann "Set-CimInstance". und über ein Property sage ich jetzt, welche Eigenschaft ich setzen möchte. Nämlich die Eigenschaft "VolumeName", und die soll gesetzt werden auf "Boot". Die zu setzende Eigenschaft, die muss hier in geschweiften Klammern, mit einem vorangestellten Klammeraffen gesetzt werden. Dabei handelt es sich um eine sogenannte "Hashtable". Hashtables erkennen Sie immer an dieser Konstruktion hier. Wenn ich dann in den Windows Explorer zurückgehe, dann sehen wir hier schon den Laufwerksnamen, und wenn ich in die Eigenschaften wechsle, dann auch hier in dem Textfeld. So können wir den Laufwerksnamen genauso ändern, wie alle anderen Eigenschaften, die sich ändern lassen. In diesem Video haben wir gesehen, wie aus der PowerShell heraus WMI-Objekte abgefragt und geändert werden können.

Windows PowerShell Grundkurs

Nutzen Sie die Leistungsfähigkeit der Windows PowerShell, lassen Sie sich dazu die Grundlagen zeigen und erledigen Sie künftig effizient Verwaltungs- und Automatisierungsaufgaben.

3 Std. 26 min (45 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Hersteller:
Exklusiv für Abo-Kunden
Erscheinungsdatum:27.08.2014

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!