PowerShell für Einsteiger

Bei der Arbeit mit PowerShell stoßen wir als erstes auf Befehle (Cmdlets).
Der Befehlsaufruf sieht so aus:

Verb-Noun -Parameter1 ValueType1 -Parameter2 ValueType2[]

Hilfe

Der Zugriff auf die Hilfe in PowerShell erfolgt über den Befehl „Get-Help“. Einer der Parameter kann angegeben werden: Beispiel, detailliert, vollständig, online, showWindow.

Get-Help Get-Service -full gibt die vollständige Beschreibung der Operation des Befehls Get-Service zurück
Get-Help Get-S* zeigt alle verfügbaren Befehle und Funktionen beginnend mit Get-S* an.

Eine ausführliche Dokumentation gibt es auch auf der offiziellen Microsoft-Website.

Hier ist eine Beispielhilfe für den Befehl „Get-Evenlog“.

PowerShell für Einsteiger

Wenn Parameter in eckige Klammern [] eingeschlossen sind, sind sie optional.
Das heißt, in diesem Beispiel ist der Name des Protokolls selbst und der Name des Parameters erforderlich Nein. Wenn der Parametertyp und sein Name in Klammern stehen, ist dieser Parameter optional.

Wenn Sie sich den Parameter EntryType ansehen, können Sie die Werte sehen, die in geschweiften Klammern eingeschlossen sind. Für diesen Parameter können wir nur vordefinierte Werte in geschweiften Klammern verwenden.

Informationen darüber, ob der Parameter erforderlich ist, finden Sie in der Beschreibung unten im Feld Erforderlich. Im obigen Beispiel ist das After-Attribut optional, da „Required“ auf „false“ gesetzt ist. Als nächstes sehen wir das gegenüberliegende Positionsfeld mit der Aufschrift „Benannt“. Dies bedeutet, dass Sie nur über den Namen auf den Parameter verweisen können, d. h.:

Get-EventLog -LogName Application -After 2020.04.26

Da der LogName-Parameter die Nummer 0 anstelle von Named hatte, bedeutet dies, dass wir auf den Parameter ohne Namen verweisen können, indem wir ihn in der gewünschten Reihenfolge angeben:

Get-EventLog Application -After 2020.04.26

Nehmen wir diese Reihenfolge an:

Get-EventLog -Newest 5 Application

Alias

Damit wir in PowerShell die gewohnten Befehle aus der Konsole nutzen können, gibt es Aliase (Alias).

Ein Beispielalias für den Set-Location-Befehl ist cd.

Das heißt, anstatt den Befehl aufzurufen

Set-Location “D:”

wir können benutzen

cd “D:”

Geschichte

Um den Verlauf von Befehlsaufrufen anzuzeigen, können Sie Get-History verwenden

Befehl aus dem Verlauf ausführen Invoke-History 1; Verlauf aufrufen 2

Klare Geschichte

Pipeline

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

Aber um die Pipeline besser zu verstehen, nehmen wir ein einfacheres Beispiel. Habe ein Team

Get-Verb "get"

Wenn Sie die Get-Help Get-Verb -Full-Hilfe aufrufen, werden wir sehen, dass der Verb-Parameter Pipline-Eingaben entgegennimmt und ByValue in Klammern geschrieben wird.

PowerShell für Einsteiger

Das bedeutet, dass wir Get-Verb „get“ in „get“ | umschreiben können GetVerb.
Das heißt, das Ergebnis des ersten Ausdrucks ist eine Zeichenfolge und wird per Pipline-Eingabe nach Wert an den Verb-Parameter des Get-Verb-Befehls übergeben.
Auch die Pipline-Eingabe kann ByPropertyName sein. In diesem Fall übergeben wir ein Objekt, das eine Eigenschaft mit einem ähnlichen Namen Verb hat.

Variablen

Variablen sind nicht stark typisiert und werden mit einem $ davor angegeben

$example = 4

Das Symbol > bedeutet, die Daten einzugeben
Beispiel: $example > File.txt
Mit diesem Ausdruck fügen wir die Daten aus der Variablen $example in eine Datei ein
Identisch mit Set-Content -Value $example -Path File.txt

Arrays

Array-Initialisierung:

$ArrayExample = @(“First”, “Second”)

Initialisierung eines leeren Arrays:

$ArrayExample = @()

Wert anhand des Index ermitteln:

$ArrayExample[0]

Holen Sie sich das gesamte Array:

$ArrayExample

Ein Element hinzufügen:

$ArrayExample += “Third”

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

Sortieren nach:

$ArrayExample | Sort

$ArrayExample | Sort -Descending

Das Array selbst bleibt bei dieser Sortierung jedoch unverändert. Und wenn wir möchten, dass das Array sortierte Daten enthält, müssen wir die sortierten Werte zuweisen:

$ArrayExample = $ArrayExample | Sort

Es gibt in PowerShell keine Möglichkeit, ein Element aus einem Array zu entfernen, aber Sie können es wie folgt tun:

$ArrayExample = $ArrayExample | where { $_ -ne “First” }

$ArrayExample = $ArrayExample | where { $_ -ne $ArrayExample[0] }

Entfernen eines Arrays:

$ArrayExample = $null

Schlaufen

Schleifensyntax:

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

Verlassen Sie die Pausenschleife.

Überspringen Sie das Continue-Element.

Bedingte Anweisungen

if () {} elseif () {} else

switch($someIntValue){
  1 { “Option 1” }
  2 { “Option 2” }
  default { “Not set” }
}

Funktion

Funktionsdefinition:

function Example () {
  echo &args
}

Funktionsstart:

Example “First argument” “Second argument”

Argumente in einer Funktion definieren:

function Example () {
  param($first, $second)
}

function Example ($first, $second) {}

Funktionsstart:

Example -first “First argument” -second “Second argument”

Exception

try{
} catch [System.Net.WebException],[System.IO.IOException]{
} catch {
} finally{
}

Source: habr.com

Kommentar hinzufügen