PowerShell fĂŒr AnfĂ€nger

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.

PowerShell fĂŒr AnfĂ€nger

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.26

Da 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.26

Angenommen, auch so eine Reihenfolge:

Get-EventLog -Newest 5 Application

Alias

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-Object

Um 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.

PowerShell fĂŒr AnfĂ€nger

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 = 4

Das 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:

$ArrayExample

HinzufĂŒgen eines Elements:

$ArrayExample += “Third”

$ArrayExample += @(“Fourth”, “Fifth”)

Sortieren:

$ArrayExample | Sort

$ArrayExample | Sort -Descending

Das 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 | Sort

TatsÀ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 = $null

Schleifen

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 () {} else

switch($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

60GB SSD 8Gb DDR4