Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

Windows PowerShell Grundkurs

Objekte suchen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Ein spezielles Filter-Cmdlet sucht in der Windows PowerShell universell nach gewünschten Objekten, wobei das Filterkriterium auf unterschiedliche Arten angegeben werden kann.
06:21

Transkript

Administratoren können eines besonders gut: Sie sind ständig auf der Suche. Beispielsweise suchen Sie nach bestimmten Objekten, wie Benutzerkonten mit abgelaufenen Kennwörtern, besonders großen Outlook-Postfächern, Fehlern im EventLog und so weiter. Doch wie sieht die Suche nach bestimmten Objekten in der Powershell aus? das zeige ich Ihnen in diesem Video. Beginnen wir mit dem Commandlet Get-Service. Sie sehen in der Ausgabe den Status, den Namen und den Display-Name jedes lokal vorhandenen Dienstes. Angenommen, wir wollen nur gestartete Dienste haben, dann könnte unsere Suche wie folgt aussehen: C:\ Get-Service ¦ und jetzt kommt das Commandlet Where-Object, das ist ein universell einzusetzendes Filtercommandlet in der Powershell, und in geschweiften Klammern schreibe ich dann: $_.Status - eq "Running" Schauen wir mal, ob denn das Ergebnis erreicht wird. Ja, und tatsächlich, hier in der Ausgabe erhalten wir nur laufende Dienste. Doch was genau bedeutet dieser Aufruf hier? Die Abfrage innerhalb der geschweiften Klammern wird für jedes Objekt, das von Get-Service über die Pipeline an Where-Object weitergeleitet wird, einmal ausgeführt, also einmal für jeden Dienst separat. Die Variable $_ steht dabei für das Objekt, das gerade abgefragt wird. Es handelt sich um einen Platzhalter. Über die Punktnotation greifen wir auf die Eigenschaft Status des jeweiligen Objekts zu. Das -eq steht für den Vergleichsoperator equal, also gleich. Neben diesem Vergleichsoperator gibt es aber auch noch viele andere, beispielsweise -gt für greater than, -ge für greater or equal -lt für lower than und -le für lower or equal. Das Running steht wiederum für den Wert, den wir suchen. Als Ergebnis erhalten wir alle Objekte, bei denen die Eigenschaft Status den Wert Running enthält. Nach dem gleichen Schema können wir nicht nur Dienste abfragen, sondern grundsätzlich alle Objekte in der Powershell. Sehen wir uns ein paar Beispiele an. Gesucht werden alle Dateien aus dem Windows-Installationsordner, die größer als 100 KB sind. Die normale Ausgabe des dir-Befehls sieht so aus: Wichtig ist hier die Spalte Length. Hier ist die Größe der Dateien in Byte enthalten. Mit diesem Wissen können wir die Abfrage formulieren. dir c:\windows ¦ Where-Object und jetzt in geschweiften Klammern $_., der Platzhalter, und über die Punktnotation greifen wir dann auf die Eigenschaft Length zu, und wir wollen alle Objekte, bei denen die Eigenschaft Length einen Wert enthält, der größer ist als 100.000, das ist mal als Annäherung gut genug. Wir machen es aber auch gleich eleganter. Ja, und tatsächlich, ich bekomme hier alle Dateien, die dann eine entsprechende Größe aufweisen. Noch etwas unschön ist hier die Kapazitätsangabe. Die Powershell hilft uns hier jedoch, mit der Möglichkeit mit KB, MB, GB, TB und PB zu arbeiten Das könnte dann wie folgt aussehen: Ich nehme gerade den Befehl von eben nochmal, und statt 100.000 schreibe ich hier einfach 100 KB. Das Ergenbis ist das gleiche, aber der Befehl ist deutlich lesbarer. Statt Where-Object können wir auch den Alias Where verwenden, das heißt, es macht keinen Unterschied, ob ich hier Where-Object schreibe, oder einfach nur Where. Auch da bekomme ich die entsprechenden Daten. Und wenn mir das immer noch zu lang ist, dann könnte ich auch noch einen weiteren Alias einsetzen, und zwar gibt es noch den Alias Fragezeichen, auch der steht für Where-Object, auch damit könnte ich dann entsprechend arbeiten, auch wenn dann die Abfrage deutlich unlesbarer ist. Seit Powershell in der Version 3 lassen sich derartige Abfragen mit Where-Object auch noch kürzer schreiben. Nehmen wir nochmal das Kommando vom Anfang, das Get-Service ¦ Where-Object $_.Status -eq "Running" das Get-Service ¦ Where-Object $_.Status -eq "Running" Seit Powershell 3 würde es auch genügen, die Abfrage ohne die Variable und auch ohne die Klammern zu schreiben, das heißt, ich nehme hier mal die Variable heraus, den Punkt von der Punktnotation und auch hier die geschweiften Klammern, und wir sehen, wir bekommen hier tatsächlich das gleiche Ergebnis wie mit der ausführlichen Variante, mit der Variablen $_ und den geschweiften Klammern. Eine solche Abfrage wäre dann allerdings unter Powershell Version 2 nicht mehr lauffähig, und außerdem sind dann Verkettungen nicht mehr möglich. wie beispielsweise die Abfrage nach allen Diensten, die laufen, die aber angehalten werden können. Dies geht nur in der ausführlichen Schreibweise, und könnte etwa so aussehen: Get-Service ¦ Where-Object $_.Status -eq "Running" Get-Service ¦ Where-Object $_.Status -eq "Running" und dann kommt die Verkettung mit einem and oder auch einem or, je nach Ansatzfall, und ich sage jetzt hier mal -and $_.CanStop -eq $true } und damit bekommen wir dann alle Dienste, die zum einen laufen, und zum anderen auch angehalten werden können. In diesem Video haben wir einen universell einzusetzenden Filter mit dem Commandlet Where-Object kennengelernt. Mit diesem Befehl suchen Sie in Objekten nach gewünschten Eigenschaftswerten.

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!