Bei der Arbeit mit PowerShell ist das erste, worauf wir stoĂen, die Befehle (Cmdlet).
Der Aufruf des Befehls sieht so aus:
Verb-Noun -Parameter1 WertTyp1 -Parameter2 WertTyp2[]
Hilfe
Der Aufruf der Hilfe in PowerShell erfolgt mit dem Befehl Get-Help. Sie können einen der Parameter angeben: 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.
Auf der offiziellen Microsoft-Website gibt es eine ausfĂŒhrliche Dokumentation.
Hier ist ein Beispiel fĂŒr die Hilfe zum Befehl Get-EventLog.

Wenn Parameter in eckige Klammern [] gesetzt sind, sind sie optional.
Das bedeutet, dass in diesem Beispiel der Name des Protokolls obligatorisch ist, wÀhrend der Name des Parameters nein ist. Wenn der Typ des Parameters und sein Name zusammen in Klammern gesetzt sind, ist dieser Parameter optional.
Wenn wir uns den Parameter EntryType ansehen, sehen wir Werte, die in geschweifte Klammern gesetzt sind. FĂŒr diesen Parameter können wir nur vordefinierte Werte in geschweiften Klammern verwenden.
Informationen darĂŒber, ob der Parameter obligatorisch ist, können wir in der Beschreibung im Feld Required unten sehen. Im obigen Beispiel ist das Attribut After optional, da neben Required false steht. Dann sehen wir das Feld Position, neben dem Named steht. Dies bedeutet, dass auf den Parameter nur nach Namen zugegriffen werden kann, also:
Get-EventLog -LogName Application -After 2020.04.26Da fĂŒr den 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 richtigen Reihenfolge angeben:
Get-EventLog Application -After 2020.04.26Angenommen, auch so eine Reihenfolge:
Get-EventLog -Newest 5 ApplicationAlias
Damit wir gewohnte 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:âkönnen wir verwenden
cd âD:âVerlauf
Um die Historie der Befehlsaufrufe anzuzeigen, kann Get-History verwendet werden.
Befehl aus der Historie ausfĂŒhren Invoke-History 1; Invoke-History 2
Historie löschen Clear-History
Pipeline
Pipelines in PowerShell sind, wenn das Ergebnis der AusfĂŒhrung der ersten Funktion an die zweite ĂŒbergeben wird. Hier ist ein Beispiel fĂŒr die Verwendung einer Pipe:
Get-Verb | Measure-ObjectUm die Pipeline besser zu verstehen, nehmen wir ein einfacheres Beispiel. Es gibt den Befehl
Get-Verb "get"Wenn Sie die Hilfe Get-Help Get-Verb -Full aufrufen, sehen wir, dass der Parameter Verb pipline input akzeptiert und in Klammern steht ByValue.

Das bedeutet, dass wir Get-Verb "get" in "get" | Get-Verb umschreiben können.
Das erste Ausdrucksergebnis ist also eine Zeichenkette, die ĂŒber den pipline input durch den Wert an den Verb-Parameter des Get-Verb-Befehls weitergegeben wird.
Auch der pipline input kann ByPropertyName sein. In diesem Fall ĂŒbergeben wir ein Objekt, das eine Eigenschaft mit einem Ă€hnlichen Namen wie Verb hat.
Variablen
Variablen sind nicht streng typisiert und werden mit dem $-Symbol davor definiert.
$example = 4Das Symbol > bedeutet, Daten zu ĂŒbertragen in
Zum Beispiel, $example > File.txt
Mit diesem Ausdruck ĂŒbertragen wir die Daten aus der Variablen $example in eine 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 durch Index abrufen:
$ArrayExample[0]Erhalte das gesamte Array:
$ArrayExampleHinzufĂŒgen eines Elements:
$ArrayExample += âThirdâ$ArrayExample += @(âFourthâ, âFifthâ)Sortieren:
$ArrayExample | Sort$ArrayExample | Sort -DescendingDas Array selbst bleibt jedoch bei dieser Sortierung unverĂ€ndert. Wenn wir möchten, dass im Array die sortierten Daten sind, mĂŒssen wir die sortierten Werte zuweisen:
$ArrayExample = $ArrayExample | SortTatsÀchlich gibt es in PowerShell kein Entfernen eines Elements aus dem Array, aber man kann es so machen:
$ArrayExample = $ArrayExample | where { $_ -ne âFirstâ }$ArrayExample = $ArrayExample | where { $_ -ne $ArrayExample[0] }
Array löschen:
$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){}Aus der Schleife aussteigen break.
Element ĂŒberspringen continue.
Bedingte Anweisungen
if () {} elseif () {} elseswitch($someIntValue){
1 { âOption 1â }
2 { âOption 2â }
default { âNot setâ }
}
Funktion
Funktion definieren:
function Example () {
echo &args
}Funktion ausfĂŒhren:
Example âFirst argumentâ âSecond argumentâArgumente in der Funktion definieren:
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
