PowerShell: Aktuellste PowerShell Versionen, Konventionen und grundsätzliche Informationen – Part 2
1.1 Aktuelle PowerShell Versionen
Seit der Erstellung des Dokumentes ist nun einige Zeit vergangen. Mittlerweile gibt es die PowerShell in der Version 5. Dennoch hat das Dokument in seinem Umfang nicht an Aktualität verloren und bezieht sich nach wie vor auf die Version 2.0. An den Stellen, wo Bezug auf später hinzugekommene Funktionalität genommen wird, wird das entsprechend vermerkt.
2 Konventionen
Um die Lesbarkeit und Übersichtlichkeit in diesem Dokument zu erhöhen, werden durch Formatierungen, bzw. besondere Symbole, bestimmte Elemente hervorgehoben.
Folgende Auflistung fasst diese Mittel zusammen:
Powershell /? |
Einzelne Befehle innerhalb des Textes werden durch die Schriftart Courier New hervorgehoben |
„%windir%\system32“ | Pfadangaben und Dateinamen werden durch Anführungszeichen eingeschlossen |
Die Autoren… |
Besondere Empfehlungen der Autoren an die Leserschaft werden durch dieses Symbol gekennzeichnet |
„Weiter“ | Schaltflächen- und Menü-Namen werden in Anführungszeichen eingeschlossen und kursiv geschrieben |
1. 2 * 5 + 3 13 2. Get-LocationPath —- C:\Windows\System32\WindowsPowerShell\v1.0 |
Kurze Beispiele in der Konsole. Die nummerierten Zeilen kennzeichnen die eingegebenen Befehle, die Zeilen ohne Nummern stellen deren Ausgabe dar |
TAB |
Bezug auf die Einzeltasten der Tastatur. Tastenkombinationen werden mit Pluszeichen verkettet: ALT + TAB |
IF | Anweisungssyntax |
(<Pipe- line1>){ <State- ment- List> } |
3 Grundsätzliche Informationen
Die PowerShell (im Dokument häufig mit PS abgekürzt) in der Version 2.0 (ausschließlich diese wird im vorliegenden Dokument behandelt) wurde nativ in die Betriebssysteme Windows 7 und Windows Server 2008 R2 integriert. Auf früheren Betriebssystemen (wir beschränken uns hier auf Windows Server 2003 und Windows XP) wurde sie als ein nachinstallierbares Paket veröffentlicht. Gegenüber der ursprünglichen Version 1.0, wurden mit Sicherheit einige Bugs beseitigt, es kamen aber auch einige Neuerungen dazu. Hier sollte der Funktionsumfang, Remote Fähigkeit, aber auch diverse Erweiterungen im Bereich Funktionen, Hilfe und die Erweiterungsmöglichkeiten der Shell (Module, selbst programmierte CMD-Lets, etc.) erwähnt werden.
Die PowerShell 2.0 braucht zwingend .Net Framework 2.0 mit SP1 und kann ab Windows Server 2003 SP2 und Windows XP SP3 installiert werden. Aus irgendwelchen unerfindlichen Gründen installiert sich PowerShell auf allen Systemen in das folgende Verzeichnis:
„%Windir%\System32\WindowsPowerShell\v1.0“,
was zwar komisch ist, aber keine weitere Rolle spielt.
Die PowerShell wird in einem Fenster, ähnlich der CMD, ausgeführt. Alle Optionen, die über das Systemmenü des Fensters erreichbar sind, entsprechen exakt den Optionen eines CMD Fensters. Dort können z.B. die Farben für den Hintergrund und die Schrift eingestellt werden. Standardmäßig werden aber Fehlermeldungen der PowerShell in roter Schrift auf schwarzem Hintergrund ausgegeben. Dies lässt sich nicht über die Eigenschaften des Fensters ändern, sondern muss innerhalb der PS selbst eingestellt werden.
Im Gegensatz zu der Version 1.0 liefert Microsoft bei PS 2.0 einen grafischen Skripteditor (Windows PowerShell ISE = Windows PowerShell Integrated Scripting Environment) aus. Der Editor unterstützt unter anderem Syntax Coloring, Tab Completition, kontextsensitive Hilfe und debuggen von Skripten. Die Beschreibung des Editors wird allerdings nicht zum Bestandteil des Kurses.
Die PowerShell kann auf unterschiedliche Arten genutzt werden:
- Interaktiv: einzelne Befehle, Skriptblöcke oder verbundene Befehle werden direkt auf der Kommandozeile der PowerShell eingegeben und mit der Taste „Enter“ ausgeführt
- Direkte Skriptausführung: innerhalb der Shell können Skripte (Endung ps1) direkt ausgeführt werden, vorausgesetzt die Ausführungsrichtlinien erlauben das (siehe Kapitel 3.2) und dem Skript steht ein absoluter oder relativer Pfad voraus (es werden, wie in fast allen Unix Shells, keine Skripte aus dem aktuellen Verzeichnis ausgeführt, hier hilft das voranstellen von „.\“ vor den Skriptnamen)
- Indirekte Skriptausführung: die PowerShell kann aus jeder beliebigen Anwendung heraus ausgeführt werden (CMD, Taskmanager, Office, VB Script, etc.). Ein Befehl oder ein Skriptname können als Parameter übergeben werden (siehe Kapitel 3.3)
- Hintergrundausführung: viele (Server-) Applikationen führen PowerShell Skripte im Hintergrund aus, wie z.B. Exchange 2010.
Aus Sicherheitsgründen wurde eine Skriptausführung per Doppelklick unterbunden (stattdessen wird das Skript in Notepad geöffnet).