Beiträge von
Marius Gawenda

Expertenwissen von Marius Gawenda

| |

PowerShell: Die Parametersets – Part 15.3

4.1.6     Parametersets

Die erweiterte Parameterdefinition erlaubt es auch, sogenannte Parametersets zu definieren. Parametersets können mit dem Überladen von Funktionen in C# verglichen werden. Das Überladen von Funktionen hat zur Folge, dass eine Funktion unterschiedliche Signaturen*  haben kann, wobei jede Signatur ein abweichendes (oder zum Teil auch ein völlig anderes) Verhalten der Funktion bewirkt. Viele CMDLets der PowerShell verwenden diese Funktionalität (z.B. Invoke-Command implementiert sieben Parametersets, Test-Connection drei, etc.). Die erweiterte Parameterdefinition wird daher auch als CMDLet-Binding bezeichnet.

| |

PowerShell: Die Param Anweisung, Erweiterte Parameterdefinition (Advanced Parameters) – Part 15.2

4.1.4  Die Param  Anweisung

Die Definition von Parametern für Skripte muss etwas anders funktionieren, als für die Funktionen, da bei einem Skript die Möglichkeit fehlt, die Parameter in Klammern irgendwo einzugeben. Geschähe das einfach am Anfang des Skriptes, wäre das nicht eindeutig und könnte nicht interpretiert werden, da die Definition von Parametern optional ist. In Skripten wird deshalb für die Parameterdefinition die Param Anweisung verwendet. Es muss der erste Befehl in einem Skript sein (davor sind lediglich Kommentare erlaubt).

| |

PowerShell: Typisierung von Parametern, Initialisierung von Parametern, Switchparameter – Part 15.1

4.1.1 Typisierung von Parametern

Die Definition von Parametern innerhalb einer Funktion kann im einfachsten Fall ohne Angabe eines Datentyps erfolgen. In vielen Fällen ist das auch völlig ausreichend. Hin und wieder ist es jedoch sinnvoll, einen bestimmten Datentyp eines Parameters zu erzwingen. Besonders dann, wenn an diesem Parameter innerhalb der Funktion Operationen durchgeführt werden, welche nur mit einem bestimmten Datentyp funktionieren oder sinnvolle Ergebnisse ergeben und der Typ des übergebenen Arguments nicht in den erwarteten Datentyp konvertiert werden kann (was die PowerShell selbständig versuchen würde).

| |

PowerShell: Skripte, Funktionen und Skriptblöcke (Parameter und Argumente) – Part 15

4.1 Parameter und Argumente

Ohne die Möglichkeit, Argumente an Funktionen und Skripte zu übergeben, wäre der Nutzen solcher sehr gering. Die Übergabe von Argumenten funktioniert bei Funktionen und Skripten gleich, daher werden die Zusammenhänge vorerst anhand von Funktionen erklärt.
Im ersten Schritt soll die informelle Argumentenübergabe (positional parameters) behandelt werden. Alle Argumente, die an eine Funktion übergeben werden, werden in einem Array Namens $Args gespeichert. Über den Ausdruck $Args.Count innerhalb der Funktion kann die Anzahl der übergebenen Argumente ermittelt werden.

| |

PowerShell: Skripte, Funktionen und Skriptblöcke (Einführung) – Part 14

4 Skripte, Funktionen und Skriptblöcke (Einführung)

Skripte sind die „Programme“, die in der PowerShell „Sprache“ geschrieben werden. Sie können beliebig komplex und fast beliebig lang sein. Skripte können beliebige Folgen von PowerShell Befehlen beinhalten, Variablen, Funktionen, Drives, etc. definieren. Sie können auch externe Parameter aufnehmen und verarbeiten, wodurch sie wesentlich an Flexibilität gewinnen. Im Normalfall laufen Skripte in einem eigenen Scope. Das bedeutet, dass alle Elemente wie Variablen, Funktionen, Drives, etc., welche innerhalb eines Skriptes,

| |

PowerShell: Preference und Error Variable, Fehlerbehandlung – Part 13

3.12 Die Preference Variablen

Die sogenannten Preference Variablen (sozusagen, die Einstellungen für die Shell) beeinflussen das Verhalten der Shell. Sie können vom Benutzer in der laufenden Shell verändert oder fest über ein Profil eingestellt werden. Auch aus einem Skript heraus können diese Variablen verändert werden (Scope beachten). Einige von den Preference Variablen definieren auch das Verhalten von sogenannten „Common Parameters“ (siehe about_Common Parameters), welche mit fast jedem Cmdlet verwendet werden können. Detailliert werden diese Variablen und auch die möglichen Werte in dem Hilfethema About_Preference_Variables beschrieben.

| |

PowerShell: Die Shell – Part 12

3.11 Die Shell

Wie ist die Shell sonst so?

Die optische Ähnlichkeit mit der CMD Shell ist wohl eine der wenigen Gemeinsamkeiten. Die PowerShell kennt das sogenannte Tab-Completition (Vervollständigung) nicht nur auf dem Drive Filesystem und nicht nur in Bezug auf die unmittelbaren Inhalte der aktuellen Location, sondern auch in Bezug auf alle Cmd-lets und alle PSDrives simultan. Drücken der Taste TAB nach der Eingabe des ersten Buchstabens eines existierenden Objekts oder Cmdlets verändert die Eingabezeile ab der ersten Cursorposition in das zuerst gefundene Element einer Trefferliste,

| |

PowerShell: Laufwerke (PSDrives) – Part 11

Der Begriff Laufwerk nimmt in der PowerShell eine völlig neue Dimension an. Im üblichen Sinne wird damit im Allgemeinen ein Datenträger bezeichnet. Die PowerShell fügt noch weitere Typen hinzu. Alle PSDrives ähneln im Verhalten dem Dateisystem. Bestimmte Stellen in der Datenstruktur eines Laufwerks können durch Pfade erreicht werden. Die Bewegung durch die Pfade und auch die meisten anderen Datenoperationen sind bei allen Laufwerken gleich, sofern sie Sinn ergeben. Die PSDrives werden mit Hilfe von sogenannten Providern realisiert.

| |

PowerShell: Operatoren und Ausdrücke (Logische Operatoren, Spezielle Operatoren) – Part 10

3.9.5  Logische Operatoren

Die logischen Operatoren erlauben den Aufbau komplexer logischer „Sätze“, welche zur Flusssteuerung oder für Entscheidungen verwendet werden können. Alle Ausdrücke, welche boolesche Werte zurückliefern oder zu solchen konvertiert werden können, können mit logischen Operatoren verknüpft werden.

Operator
Beschreibung
Beispiel
Resultat

-and
Logisches „und“. Wahr, wenn beide Operanden Wahr sind.
1 –and 0
$False

-or
Logisches „oder“. Wahr, wenn zumindest ein Operand Wahr ist.

| |

PowerShell: Operatoren und Ausdrücke (Vergleichsoperatoren, Mustervergleichsoperatoren) – Part 9

NEW: sepagoTraining – Grundlagenkurs: How to Windows PowerShell

3.9.3 Vergleichsoperatoren

Die Vergleichsoperatoren beginnen immer mit einem Bindestrich. Sie werden in Ausdrucken verwendet, welche logische Überprüfungen darstellen. Diese liefern immer entweder $False oder $True zurück. In der folgenden Tabelle sind die Vergleichsoperatoren der PowerShell zusammen gefasst.

Operator
Beschreibung
Beispiel
Resultat

-eq
Ist gleich (equal)
5 –eq 5
$True

-ne
 Ist nicht gleich (not equal)
5 –ne 5
$False

-gt
Größer als (greather than)
5 –gt 3
$True

-ge
Größer als oder gleich (greather than or equal)
5 –ge 3
$True

-lt
Kleiner als (less than)
5 –lt 3
$False

-le
Kleiner als oder gleich (less than or equal)
5 –le 3
$False

-contains
Beinhaltet
1,2,3 –contains 2
$True

-notcontains
Beinhaltet nicht
1,2,3 –notcontains 2
$False

Tabelle 3 6: Vergleichsoperatoren