Inhalt

Vorheriges Thema

Powershell für Systemadministratoren !

Nächstes Thema

2. PowerShell im Interaktiv-Modus

Diese Seite

1. PowerShell auf der Konsole

Während Microsoft bereits seit vielen Jahren für seine Anwender- und Betriebssystemsoftware bekannt ist, hat sie relativ lange Zeit wenig Resoourcen in die Bereitstellung von Scriptingumgebungen gesteckt.

Relativ lange war die DOS-Konsole mit seinen wenigen Befehlen die einzige Möglichkeit, Windows von der Konsole her anzupacken. Mit Beginn von Windows 95 wurde deshalb mit der Scriptsprache vbscript die Möglichkeit geschaffen, für den Systemadministrator eine Plattform zur Verfügung zu stellen, um Windows Betriebssysteme automatisieren zu können.

Mit dem Erscheinen der .NET-Programmierplattform und dem Wechsel von der alten COM-Welt zu dieser neuen Plattform gab es allerdings zunächst keine Unterstützung dieses Frameworks aus Sicht des Systemadministrators.

Powershell schließt diese Lücke. Es baut auf dem .NET-Framework 2.0 auf und ermöglicht den Zugriff sowohl auf die alte COM-Welt als auch auf die Klassen des .NET-Frameworks.

_images/ps4admin01.jpg _images/ps4admin02.jpg _images/powershell_architecture.jpg

1.1. Installation von Powershell

PowerShell ist seit Windows 7 und Server 2008 ein integraler Bestandteil des Betriebssystems. Unter früheren Systemen kann man es nachinstallieren.

1.2. Hilfe und Tutorials

Nach der Installation von Powershell findet man eine lokalisierte Hilfe als CHM-Datei.

_images/powershell_chmhelp.jpg

Weiterhin gibt es mittlerweile viele Webseiten bzw. Tutorials, die sich mit der PowerShell beschäftigen.

1.3. Umgang mit der Konsole und GUI

Der erste Eindruck von Powershell wird sicherlich von dem blauen Konsolenfenster bestimmt, welches sich nach einem Klick auf Powershell öffnet.

_images/powershell_console.jpg

Während PS in der Version 1.0 über keine weiteren grafischen Elemente verfügte, hat Microsoft der Version 2.0 eine grafische Oberfläche spendiert.

_images/powershell_gui.jpg

Daneben gibt es eine Reihe weiterer Programme, die ein grafische Benutzeroberfläche incl. Systaxhighlightning und CodeCompleting bieten. Im Folgenden werden wir das Programm (PowerGUI) der Firma Quest Software benutzen. Neben dem kostenlosen Skripteditor bietet die Firma auch einige interessante Commandlets zur Manipulation des ActiveDirectory und des ExchangeServers.

(PowerGui) ist ein Freeware-Programm, welches sowohl über eine Konsole als auch ein Skriptfenster verfügt. Das Skriptfenster verfügt über Code-Completing und Syntax-Highlightning und ist deshalb für umfangreichere Programme die erste Wahl.

_images/powergui.png

Die Wahl des Editors ist letztlich eine Geschmacksfrage.

1.3.1. Erste Schritte auf der Konsole:

  • Mulit-Line-Entries
  • Wichtige Keyboard-Shortcuts
  • Command-History
  • Automatische Eingabe-Vervollständigung
  • Text auswählen und einfügen

After PowerShell starts, its console window opens, and you see a blinking text prompt, asking for your input with no icons or menus. PowerShell is a command console and almost entirely operated via keyboard input. The prompt begins with “PS” and after it is the path name of the directory where you are located. Start by trying out a few commands. For example, type:

1.3.2. Anpassen der Konsole

  • Konsole-Eigenschaften
  • Fonts und Fontgröße
  • Window- und Buffersize
  • Farben

1.3.3. Piping and Redirecting

Häufig werden die Informationen, die die PowerShell ausgibt, über mehrere Bildschirmseiten verteilt. Um dies besser kontrollieren zu können, kann man mit Hilfe des sog. Piping eine seitenweise Darstellung erreichen. Geben Sie zum besseren Verständnis einfach einmal folgende Befehle ein:

Get-Process
Get-Process | more (Enter)

Im 2. Befehl wird das Piping-Symbol | benutzt, um eine seitenweise Darstellung zu erreichen. Im späteren Verlauf wird auf dieses mächtige Konzept noch näher eingegangen.

_images/piping_more.png

Häufig will man die Ausgabe nicht nur auf dem Bildschirm sehen, sondern die Ergebnisse in einer Datei festhalten. Dazu dient das “>” - Symbol, welches die Ausgabe in eine Datei umlenkt.

help > help.txt (Return)

Um nun die Datei in Notepad zu öffnen, muss man lediglich auf der Konsole folgenden Befehl eingeben.

.\help.txt
_images/redirecting.png

Die Ausgabe kann auch in eine bereits bestehende Datei umgeleitet werden. Der Text dieser Datei wird damit nicht überschrieben, sondern erweitert. Dies erfolgt mit dem Zeichen “>>”.

cmd /c help >> help.txt (Return)

Will man das Ergebnis eines Befehls weiterverarbeiten, muss man nicht nur mit redirecting arbeiten. Powershell kann das Ergebnis jedes Befehls in einer Variable speichern, auf die man innerhalb der bestehenden Powershell-Session Zugriff hat.

$result = ipconfig
$result
_images/redirecting_variable.png

1.3.4. Auto-Completing

Powershell kennt viele eingebaute Befehle, die natürlich schwer zu merken sind. Um Tippfehler auszuschließen, können Sie nach Eingabe der ersten Buchstaben die TAB-Taste drücken. Sie erhalten dann einen Vorschlag zur Vervollständigung. Weiteres Drücken der TAB-Taste gibt einen weiteren Vorschlag.

1.3.5. Tastenkürzel

Taste Bedeutung
(ALT)+(F7) Deletes the current command history
(PgUp), (PgDn) Display the first (PgUp) or last (PgDn) command you used in current session
(Enter) Send the entered lines to PowerShell for execution
(End) Moves the editing cursor to the end of the command line
(Del) Deletes the character to the right of the insertion point
(Esc) Deletes current command line
(F2) Moves in current command line to the next character corresponding to specified character
(F4) Deletes all characters to the right of the insertion point up to specified character
(F7) Displays last entered commands in a dialog box
(F8) Displays commands from command history beginning with the character that you already entered in the command line
(F9) Opens a dialog box in which you can enter the number of a command from your command history to return the command.
(Arrow Left/Right) Move one character to the left or right respectively
(Arrow up, down) Repeat the last previously entered command
(Home) Moves editing cursor to beginning of command line
(Backspace) Deletes character to the left of the insertion point
(Ctrl)+(C) Cancels command execution
(Ctrl)+(End) Deletes all characters from current position to end of command line
(Ctrl)+(Arrow left), (Ctrl)+(Arrow right) Move insertion point one word to the left or right respectively
(Ctrl)+(Home) Deletes all characters of current position up to beginning of command line
(Tab) Automatically completes current entry, if possible

1.3.6. Fragen

  • Wie startet man die Powershell
  • Welche beiden Varianten der Powershell gibt es
  • Welchen Nutzen hat die TAB-Taste
  • Wie kann man sich die zuletzt eingegebenen Befehle anzeigen lassen
  • Wo kann man Informationen im Internet zur Powershell finden
  • Was ist Piping
  • Was ist Redirection
  • Wie kann man die Farbe in der Powershell-Shell ändern