PowerShell für Anfänger

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.

PowerShell für Anfänger

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

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

Nehmen wir auch diese Reihenfolge an:

Get-EventLog -Newest 5 Application

Alias

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

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

PowerShell für Anfänger

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

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

$ArrayExample

Hinzufügen eines Elements:

$ArrayExample += “Third”

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

Sortierung:

$ArrayExample | Sort

$ArrayExample | Sort -Descending

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

In 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 = $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){}

Mit break aus der Schleife aussteigen.

Element mit continue überspringen.

Bedingte Anweisungen

if () {} elseif () {} else

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

Erwerben Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster