Kurzeinführung Windows PowerShell – Was sind Objekte – Cmdlets – Schleifen..

Grundlagen

Windows PowerShell ist sowohl eine Befehlszeilenshell als auch eine Skriptsprache mit mehr als 130 Befehlszeilenprogrammen, sogenannten Cmdlets (Command-Lets), die extrem konsistenten Syntax- und Namenskonventionen folgen und mit benutzerdefinierten Cmdlets erweitert werden können.

Ab Windows 7 und Windows Server 2008 ist die PowerShell standardmäßig vorhanden. Gegenwärtig ist die Version 5.1 aktuell. Welche Version bei euch installiert ist könnt Ihr mit dem Cmdlet $psversiontable herausfinden.

Auslesen Der Aktuellen Windows Powershell Version
Auslesen der Aktuellen Windows PowerShell Version

PowerShell-Syntax, – Cmdlets und Objekte

Anweisungen werden mithilfe von Cmdlets ausgegeben. Bei einem Cmdlet handelt es sich um ein Einzelfeature zum Bearbeiten eines Objekts. Sie verwenden eine Verb-Nomen-Syntax, d. h. ein Verb und ein Nomen getrennt durch einen Bindestrich. Parameter werden mit einem vorgestellten „-“ gekennzeichnet.

PowerShell ist ein objektorientierte Shell, das heißt, dass das Ein- und Ausgeben von Befehlen in der Regel Objekte sind. Die Verbindung von Befehlen wir durch den sogenannten „Pipe“ Befehl dargestellt: |. Detaillierte Informationen zur Pipeline und dessen Anwendung könnt ihr hier nachlesen.


Zum Artikel: Powershell Pipeline richtig verwenden

Was ist ein Objekt

Ein Objekt ist ein Programmkonstrukt. Vom technischen Standpunkt aus handelt es sich bei einem .NET-Objekt um eine Instanz einer .NET-Klasse, die sich aus Daten und den mit diesen Daten verknüpften Operationen zusammensetzt.

Das Cmdlet Get-Service gibt ein oder mehrere Objekte zurück, die Dienste repräsentieren. Objekte können über Eigenschaften verfügen, die in der Ressource vorhandene Daten oder Attribute darstellen. E

in Objekt, das insbesondere einen Dienst repräsentiert, verfügt über Eigenschaften für den Dienstnamen und den Startstatus.

Wenn man eine Eigenschaft abruft, ruft man die Daten aus der Ressource ab. Wenn man eine Eigenschaft festlegt, wird diese in die Ressource geschrieben.

Objekte verfügen auch über Methoden. Das sind Aktionen, die das Objekt durchführen kann. Das Dienstobjekt verfügt z.B. über die Methoden start und stop.

Variablen in der Powershell

Variablen beginnen in PowerShell immer mit einem Dollarzeichen ($).

PS C:\Windows\system32\ $p = Get-Process
PS C:\Windows\system32\ $p
Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName                                                                                                                                   
-------  ------    -----      ----- -----   ------     -- -----------                                                                                                                                   
     66       6      832       1016    19     0,06   1144 AsLdrSrv                                                                                                                                      
    188      16     2940       3080   102     3,17    896 AsusTPCenter                                                                                                                                  
     48       6      756        528    45     0,55   4180 AsusTPHelper   

Praxisbeispiele:

Erstellung ein PowerShell Hilfe Datei: PowerShell-hilfe.txt

1. Möglichkeit:

Get-help * | get-help -detailed | out-file f:\PowerShell-hilfe.txt

Hier wurde das Ergebnis mit der Pipe weitergeleitet an das Cmdlet: out-file. Anschließend muss noch der Pfad mit angegeben werden, wo man die Datei speichern möchte.  Man sollte natürlich bedenken, dass man am Speicherort auch die entsprechenden Recht hat um hier ein Dokument anlegen zu können.

2. Möglichkeit:

Get-help * | get-help -detailed > f:\PowerShell-hilfe.txt

Hier wurde mit dem folgenden Zeichen > der Weiterleitungsoperator verwendet. Das Ergebnis wird also in die Datei geschrieben. Beachte: Wenn man den Operator doppelt verwendet: >>

Wird der Inhalt in die bereits vorhandene Datei angefügt. Bei einmaligem Verwenden wird der Inhalt – falls einer vorhanden ist – überschrieben. Anwendung findet der doppelte Operator vorwiegend bei Log Dateien.

Schleifenkonstrukte / Kontrollstrukturen / Vergleichsoperatoren

Für die Verwendung von Schleifenkonstrukte  bzw. Vergleichsoperatoren soll die folgende Tabelle eine kleine Hilfestellung geben. Kontrollstrukturen werden vom Prinzip genauso so verwendet wie auch in zahlreichen anderen Skriptsprachen.

VergleichsoperatorBeschreibung
-eqGleich
-neUngleich
-gt, -geGrößer als / Größer oder gleich
-lt , -leKleiner als / Kleiner oder gleich
-matchEntspricht
-nomatchEntspricht nicht
Überblick Windows PowerShell – Vergleichsoperatoren

Das folgende Beispiel soll die Verwendung der Vergleichsoperatoren etwas verdeutlichen. Grundsätzlich wird hier folgende Ausgabe erzeugt. Es werden alle Dienste ausgegeben.  Diese werden nach Ihrem Status (start/stop) sortiert und noch zusätzlich in unterschiedlichen Farben dargestellt.

Get-service | foreach-object {
	if ($_.status -eq „stopped“) {write-host -foregroundcolor green $_.name $_.status}
	else {write-host -foregroundcolor red $_.name $_.status }}

Die Ausgabe sollte in etwas wie folgt aussehen.

Ausgabe-Dienste-Farbig
Ausgabe: Dienste Farbig

Es werden alle Dienste aufgelistet und anschließend mit der foreach-Object Schleife durchlaufen. Innerhalb der Schleife wird mit einer if Bedingung der Status des Dienstes überprüft. In der Schleife werden die Object mit dem $_. Zeichen angesprochen. Es wird geprüft, ob der Status gleich „stopped“ ist. Falls ja, dann gib in der Konsole den Namen ($_.name ) und den Status ($_.status) des Dienstes in grüner Farbe aus. Andernfalls gib ebenfalls den Namen und den Status aus, aber in der Farbe Rot.

Das könnte dich auch interessieren:

Dieser Artikel beinhaltet Partner-Links. Durch einen Klick darauf ge­lan­gt ihr direkt zum Anbieter. Solltet ihr euch dort für einen Kauf entscheiden, erhält IT-Learner eine kleine Provision. Der Preis ändert sich für euch nicht. Danke für eure Unterstützung! Letzte Aktualisierung am 18.04.2024

6384c3166a2c4a3fb2f7939e44f69213
Der Blogbetreiber und Autor: Markus Elsberger

Über den Autor

Mein Name ist Markus Elsberger und ich beschäftige mich mit der Administration von Windows und Linux Systemen sowie mit diversen Themen bzgl. Netzwerktechnik. In meiner Lehrtätigkeit erstelle ich verschiedene Szenarien und teste auch verschiedene Konfigurationen, welche ich in diesem Blog festhalten möchte.


Kostenlose Befehlsreferenzen und E-Books
(Netzwerkanalyse, Benutzerverwaltung, Festplattenkonfiguration, u. v. m.)


Kommentar verfassen

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

Ebook - 10 Schritte nach der Windows Installation

Kostenlose Befehlsreferenzen und

E-Books

FREE

Netzwerkanalyse, Benutzerverwaltung, Festplattenkonfiguration, u. v. m.