Bei der Arbeit mit PowerShell ist das erste, womit wir konfrontiert werden, die Befehle (Cmdlet).
Der Aufruf eines Befehls sieht so aus:
Verb-Nomen -Parameter1 WertTyp1 -Parameter2 WertTyp2[]
Hilfe
Der Aufruf der Hilfe in PowerShell erfolgt über den Befehl Get-Help. Es können eine der folgenden Optionen angegeben werden: example, detailed, full, online, showWindow.
Get-Help Get-Service -full gibt eine vollständige Beschreibung der Funktionsweise des Befehls Get-Service zurück.
Get-Help Get-S* zeigt alle verfügbaren Befehle und Funktionen, die mit Get-S* beginnen.
Außerdem gibt es auf der offiziellen Microsoft-Website eine ausführliche Dokumentation.
Hier ist ein Beispiel für die Hilfe zu dem Befehl Get-Evenlog.

Wenn die Parameter in eckige Klammern [] gesetzt sind, sind sie optional.
Das bedeutet, dass in diesem Beispiel der Name des Protokolls obligatorisch ist, während der Parametername nicht. Wenn der Parametertyp und sein Name zusammen in Klammern stehen, ist dieser Parameter optional.
Wenn wir uns den Parameter EntryType ansehen, sehen wir die Werte, die in geschweifte Klammern gesetzt sind. Für diesen Parameter können wir nur vordefinierte Werte in geschweiften Klammern verwenden.
Information darüber, ob der Parameter erforderlich ist, finden wir in der Beschreibung im Feld Required. Im obigen Beispiel ist das Attribut After nicht erforderlich, da gegenüber Required false steht. Im Weiteren sehen wir das Feld Position, neben dem Named steht. Das bedeutet, dass auf den Parameter nur nach Namen zugegriffen werden kann, nämlich:
Get-EventLog -LogName Application -After 2020.04.26Da beim Parameter LogName anstelle von Named die Zahl 0 angegeben wurde, bedeutet dies, dass wir auf den Parameter ohne Namen zugreifen können, indem wir ihn in der erforderlichen Reihenfolge angeben:
Get-EventLog Application -After 2020.04.26Nehmen wir auch diese Reihenfolge an:
Get-EventLog -Newest 5 ApplicationAlias
Damit wir gebräuchliche Befehle aus der Konsole in PowerShell verwenden können, gibt es Aliase (Alias).
Ein Beispiel für einen Alias für den Befehl Set-Location ist cd.
Das heißt, anstelle des Aufrufs des Befehls
Set-Location “D:”kannst du verwenden
cd “D:”History
Um die Historie der Befehle zu sehen, kannst du Get-History verwenden.
Einen Befehl aus der Historie ausführen Invoke-History 1; Invoke-History 2
Historie löschen Clear-History
Pipeline
Ein Pipeline in PowerShell ist, wenn das Ergebnis der ersten Funktion an die zweite übergeben wird. Hier ist ein Beispiel für die Verwendung der Pipeline:
Get-Verb | Measure-ObjectUm den Pipeline besser zu verstehen, nehmen wir ein einfacheres Beispiel. Es gibt einen Befehl
Get-Verb "get"Wenn wir die Hilfe mit Get-Help Get-Verb -Full aufrufen, sehen wir, dass der Parameter Verb Pipeline-Input akzeptiert und in Klammern steht "ByValue".

Das bedeutet, dass wir Get-Verb „get“ in „get“ | Get-Verb umschreiben können.
Das Ergebnis des ersten Ausdrucks ist eine Zeichenkette, die als Wert an den Parameter Verb des Befehls Get-Verb über Pipeline-Input übergeben wird.
Pipeline-Input kann auch ByPropertyName sein. In diesem Fall übergeben wir ein Objekt, das eine Eigenschaft mit ähnlichem Namen hat wie Verb.
Variablen
Variablen sind nicht streng typisiert und werden mit dem Symbol $ davor definiert.
$example = 4Das Symbol > bedeutet, Daten in
Zum Beispiel, $example > File.txt
Mit diesem Ausdruck legen wir die Daten aus der Variable $example in die Datei
Ähnlich wie beim Befehl Set-Content -Value $example -Path File.txt
Arrays
Initialisierung eines Arrays:
$ArrayExample = @(“First”, “Second”)Initialisierung eines leeren Arrays:
$ArrayExample = @()Wert nach Index abfragen:
$ArrayExample[0]Das gesamte Array abfragen:
$ArrayExampleHinzufügen eines Elements:
$ArrayExample += “Third”$ArrayExample += @(“Fourth”, “Fifth”)Sortierung:
$ArrayExample | Sort$ArrayExample | Sort -DescendingDas Array bleibt bei dieser Sortierung unverändert. Wenn wir jedoch die Sortierung im Array haben wollen, müssen wir die sortierten Werte zuweisen:
$ArrayExample = $ArrayExample | SortIn PowerShell gibt es tatsächlich keine Funktion, um ein Element aus einem Array zu entfernen, aber man kann es folgendermaßen tun:
$ArrayExample = $ArrayExample | where { $_ -ne “First” }$ArrayExample = $ArrayExample | where { $_ -ne $ArrayExample[0] }
Löschen des Arrays:
$ArrayExample = $nullSchleifen
Syntax der Schleifen:
for($i = 0; $i -lt 5; $i++){}
$i = 0
while($i -lt 5){}
$i = 0
do{} while($i -lt 5)
$i = 0
do{} until($i -lt 5)
ForEach($item in $items){}Mit break aus der Schleife aussteigen.
Element mit continue überspringen.
Bedingte Anweisungen
if () {} elseif () {} elseswitch($someIntValue){
1 { “Option 1” }
2 { “Option 2” }
default { “Not set” }
}
Funktion
Funktionsdefinition:
function Example () {
echo &args
}Funktion ausführen:
Example “First argument” “Second argument”Definition der Argumente in der Funktion:
function Example () {
param($first, $second)
}
function Example ($first, $second) {}Funktion ausführen:
Example -first “First argument” -second “Second argument”Ausnahme
try{
} catch [System.Net.WebException],[System.IO.IOException]{
} catch {
} finally{
}
Quelle: habr.com
