Home > Allgemein > kleine Powershell Einführung

kleine Powershell Einführung

Ich möchte hier mal eine kleine Anfänger-Einführung für Powershell geben, da ich soeben einen Webcast gesehen habe der zeigt dass das “Power” in Powershell wörtlich zu nehmen ist. Außerdem wurde mir klar, dass die Powershell wirklich einfach zu erlernen ist.

Einstieg

(XP, Server 2003)-Nutzer müssen diese zunächst installieren, bei Vista und Server 2008 ist Sie bereits vorinstalliert.

Als erstes möchte ich die wichtigsten Befehle und Eigenarten die für den Einstieg wichtig sind beschreiben:

  • get-Command: Zeigt alle verfügbaren Befehle an.
  • get-help <Befehl>: Zeigt die Hilfe zu einem Befehl an.
  • get-help <Befehl> -detailed: Zeigt die Erweiterte Hilfe an. Dabei werden z.B. auch Beispiele angezeigt.
  • -whatif: Ist ein Parameter der an alle Befehle angehängt werden kann, und nur die Ausgabe zeigt, die der Befehl ergeben würde ohne ihn tatsächlich auszuführen
  • -confirm: Ebenfalls ein Parameter der an alle Befehle angehängt werden kann und dann vor jeder Aktion nachfragt.
  • <Befehl1> | <Befehl2> Pipe: Benutzt die Ausgabe des zweiten Befehls als Eingabe für den ersten.
  • einfacher Filter: Bei Befehlen die eine Liste ausgeben (z.B. get-command) kann die Ausgabe auf bestimmte Elemente beschränkt werden indem der Name bzw. der Anfng des Namens plus dem Platzhalter * benutzt werden (Analog zum dir-Befehl der Kommandozeile…)

Skripte

Mit diesen Befehlen kann man den Einstieg eigentlich schon recht gut schaffen. Eines der wichtigsten Features ist natürlich die Möglichkeit Skripte zu erstellen. Beim schreiben von Skripten muss man beachten, dass diese .ps als Dateiendung müssen. Als aller erstes muss man allerdings erlauben dass Skripte ausgeführt werden, da standardmäßig nur Befehle, aber keine Skripte ausgeführt werden dürfen. Dies erledigt man mit dem Befehl

Set-ExecutionPolicy Remotesigned

Dadurch dürfen Skripte ausgeführt werden, wobei aus dem Internet heruntergeladene Skripte signiert sein müssen, lokal erstellte hingegen nicht. Nähre Informationen liefert der Befehl “get-help about_signing”.

Variablen:

  • Starten mit $ und sind nicht typisiert z.B. $var = “Wert”
  • Arrays werden direkt initialisiert: $array = 1,3,4
  • Konkatenation erfolgt nach C# bzw. Java Syntax: $var = “wert” + $var2
  • Eine For-Each Schleife hat folgendes Format:
    foreach($i in $list)
    {
        # Mach etwas mit $i
    }

Dies ist nur eine sehr knappe und kurze Einführung, sollte aber für einen Einstieg reichen. Was beim täglichen Gebrauch sehr interessant sein dürfte, ist dass man Schleifen, Variablen, Bedingte Abfragen usw. auch der Shell ohne ein spezielles Skript zu schreiben benutzen kann. Dies bedeutet, dass ich mal eben schnell eine foreach Schleife eingeben kann die alle Dienste auf dem Rechner beendet (um mich danach zu wundern warum nichts mehr funktioniert ;-) ).

Coole Sachen:

  • Wenn man einen Befehl der Parameter erwartet ohne Parameter eingibt, wird man nach diesen gefragt:
    image
  • Powershell+ ist eine IDE im weitesten Sinne. Das Programm hat im Hauptfenster eine Instanz der Powershell, so dass Befehle direkt eingegeben werden können. Das coole ist, dass man z.B. auch Variablen definieren kann und immer den Wert im Blick hat.
  • Alle bekannten Befehle der Kommandozeile funktionieren weiterhin.
  • Zugriff auf alle Informationen des lokalen und anderer Rechner per WMI

Ressourcen

Als weitere Hilfe und für weitere Informationen bieten sich folgende Ressourcen an:

  • Powershell+ eine IDE für die Powershell (kostenlos!) die eine eigene Instanz der Powershell mit Hilfreichen Informationen und Erweiterungen enthält (Befehlsreferenz in zusätzlichem Fenster, eine Art Intellisense, Anzeige eigener gesetzter Variablen, …)
  • Wikipedia-Eintrag mit einigen Beispielen und näheren Erklärungen
  • Microsoft: Offizielle Seite mit Links zu fertigen Skripten, weiterer Dokumentation, …
  • Channel9: Befehlsreferenz inkl. Erklärung der Syntax
  • How to Use the Powershell 1.0: A Beginner’s Guide: noch eine Einführung, allerdings detaillierter und auf Englisch
KategorienAllgemein Tags: ,
  1. toto
    1. Juni 2010, 18:29 | #1

    “Powershell+” ist nicht (mehr?) kostenlos

  2. Denis
    2. Juni 2010, 19:47 | #2

    Hast recht – schade eigentlich.

  1. Bisher keine Trackbacks