Windows PowerShell - Grundlagen & Scripting-Praxis für Einsteiger - Für alle Versionen

von: Tobias Weltner

O'Reilly Verlag, 2018

ISBN: 9783960101789 , 420 Seiten

Format: ePUB

Kopierschutz: Wasserzeichen

Mac OSX,Windows PC für alle DRM-fähigen eReader Apple iPad, Android Tablet PC's Apple iPod touch, iPhone und Android Smartphones

Preis: 26,90 EUR

eBook anfordern eBook anfordern

Mehr zum Inhalt

Windows PowerShell - Grundlagen & Scripting-Praxis für Einsteiger - Für alle Versionen


 

Kapitel 2


Cmdlets – die PowerShell-Befehle


In diesem Kapitel:

Alles, was Sie über Cmdlets wissen müssen

Cmdlets für eine Aufgabe finden

Mit Parametern Wünsche formulieren

Neue Cmdlets aus Modulen nachladen

Alias: Zweitname für Cmdlets

Ausführlich werden in diesem Kapitel die folgenden Aspekte erläutert:

  • Cmdlets: PowerShell-Befehle werden »Cmdlets« (sprich: »Commandlets«) genannt. Sie können nur innerhalb der PowerShell ausgeführt werden. Ihr Name besteht immer aus einem Verb, einem Bindestrich und einem Nomen. Mit Get-Command und Show-Command lassen sich Cmdlets suchen und finden. Welche Cmdlets zur Verfügung stehen, hängt nicht nur von der eingesetzten PowerShell-Version ab, sondern auch vom Betriebssystem und der installierten zusätzlichen Softwareausstattung.
  • Parameter: Alle Informationen, die ein Cmdlet vom Anwender benötigt, erhält es über Parameter. Parameter beginnen stets mit einem Bindestrich. Gibt man im ISE-Editor hinter einem Cmdlet ein Leerzeichen und dann einen Bindestrich an, öffnet sich eine Liste der Parameter. Parameter können optional oder zwingend sein. Wird ein zwingender Parameter nicht angegeben, fragt PowerShell nach.
  • Aliase: Cmdlets können über Aliasnamen angesprochen werden. So bildet PowerShell Befehle anderer Shells ab (beispielsweise dir oder ls). Die Liste der Aliasnamen erhält man mit Get-Alias.
  • Hilfe: Klickt man in der ISE auf ein Cmdlet und drückt dann , öffnet sich ein Hilfefenster und erklärt die Funktionsweise des Cmdlets. Dahinter steckt das Cmdlet Get-Help, dessen Aufruf man nach Druck auf in der Konsole der ISE sieht. Über diesen Befehl kann die Hilfe auch in der PowerShell-Konsole geöffnet werden.
  • Fehlermeldungen: Wie sich ein Cmdlet im Fehlerfall verhalten soll, bestimmt der Parameter -ErrorAction. Er gehört zu den »Common Parameters«, die jedes Cmdlet unterstützt.

 

PowerShell ist zwar eine Automationssprache, mit der man beliebige Aufgaben beschreiben und lösen kann, damit Sie aber nicht jedes Mal von vorn beginnen müssen, enthält PowerShell bereits Tausende fix und fertiger Problemlösungen. Diese Problemlösungen werden »Cmdlets« genannt (sprich: »Commandlet«), und in diesem Kapitel geht es ausschließlich darum, wie man mit diesen Cmdlets umgeht.

Im Verlauf der nächsten Kapitel erfahren Sie dann Schritt für Schritt, wie man auch andere Probleme lösen kann, für die es (noch) keine fertigen Cmdlets gibt, und sogar, wie man völlig eigene neue PowerShell-Befehle hinzufügen kann, die dann genau das tun, was Sie gerade brauchen. Doch bereits die mitgelieferten Cmdlets sind ein spannendes Gebiet mit vielfältigen Einsatzmöglichkeiten, wie Sie gleich an vielen Praxisbeispielen sehen werden.

Alles, was Sie über Cmdlets wissen müssen


Die PowerShell-Befehle werden »Cmdlet« genannt. Es sind eigenständige, fertige Problemlösungen, die aber auf PowerShell aufbauen. Deshalb funktionieren Cmdlets nur innerhalb der PowerShell, und deshalb heißen diese Befehle eben auch Cmdlet und nicht Command: So wie es ein Treibstoff sparendes »Winglet« beim Ferienflieger nicht ohne dazugehörenden »Wing« gibt, an dem es befestigt wird, kann auch ein Cmdlet nicht außerhalb der PowerShell ausgeführt werden – daher also das »let« am Ende des Namens.

Ein Cmdlet enthält ausschließlich diejenige Fachkompetenz, die zur Lösung einer bestimmten Aufgabe nötig ist. Um all den allgemeinen übrigen Rest – das Ein- und Ausgeben von Informationen, Hilfestellung, die Übergabe von Parametern oder auch die Behandlung von Fehlern – kümmert sich ein Cmdlet nicht. Diese Dinge werden für alle Cmdlets zentral von der PowerShell bereitgestellt.

Das macht die Entwicklung von Cmdlets besonders einfach, und auch Sie als Nutzer dürfen sich freuen, denn die Bedienung der Cmdlets ist sehr konsistent. Kennen Sie sich mit einem Cmdlet aus, können Sie dieses Grundwissen auf alle anderen Cmdlets übertragen.

  • Namensgebung: Alle Cmdlets tragen einen Doppelnamen. Der erste Namensteil ist ein Verb, also eine Tätigkeit wie zum Beispiel Get. Dieses Verb verrät, was das Cmdlet tun wird. Der zweite Teil ist ein Substantiv (Nomen), also ein Tätigkeitsbereich wie zum Beispiel Service. Er verrät, worauf sich das Cmdlet auswirkt, und ist sozusagen der Familienname. Beide Namensteile sind üblicherweise in Englisch und im Singular (Einzahl).
  • Parameter: Hinter dem Cmdlet-Namen können zusätzliche Informationen folgen, mit denen Sie dem Cmdlet dann genauer erklären, was es genau für Sie erledigen soll. Diese Zusatzinformationen werden »Argumente« genannt und vom Cmdlet über einen passenden »Parameter« erfragt. Die meisten Parameter sind optional, also freiwillig, manche aber auch zwingend. Ohne solche Parameter kann das Cmdlet seine Arbeit nicht beginnen. Parameter sind der einzige Weg, wie Sie die Funktionsweise eines Cmdlets steuern und anpassen.
  • Hilfe: Das PowerShell-Hilfesystem kann für alle Cmdlets ausführliche Hilfestellung liefern, die erklärt, was das Cmdlet genau für Arbeiten durchführt, welche Parameter es unterstützt und wofür die Parameter gut sind. Häufig enthält die Hilfe auch konkrete Codebeispiele, mit denen man experimentieren kann und die als Ausgangspunkt für eigene Aufrufe dienen können. Dazu müssen die ergänzenden Hilfeinformationen aber zuerst, wie im letzten Kapitel beschrieben, mit Update-Help aus dem Internet heruntergeladen worden sein. Steht keine Hilfe für ein Cmdlet zur Verfügung, zeigt das PowerShell-Hilfesystem zumindest die verfügbaren Parameter und die genaue »Syntax« des Cmdlet-Aufrufs an – die formale Beschreibung, wie das Cmdlet aufgerufen werden kann.
  • Autovervollständigung: PowerShell unterstützt Sie mit den Autovervollständigungsfunktionen aus dem letzten Kapitel. Auf Wunsch vervollständigt PowerShell Cmdlet-Namen, die Parameternamen eines Cmdlets und in einigen Fällen sogar die Argumente, die Sie einem Parameter zuweisen können.

Hinweis


Ausnahmslos jedes Cmdlet stammt aus einem sogenannten »Modul«. Einige Module bringt PowerShell selbst mit, und andere Module werden von Betriebssystemen oder installierter Software hinzugefügt. Das erklärt, warum es bei Windows 8 mehr Cmdlets gibt als bei Windows 7 und bei Windows 10 wiederum mehr: Hier fügen die Betriebssysteme jeweils zusätzliche Module mit weiteren Cmdlets hinzu. Je moderner Ihr Windows ist, desto umfassender ist seine PowerShell-Unterstützung. Module sind allerdings im Augenblick nicht wichtig. Sie lesen später mehr darüber. Aktuell genügt es vollauf, sich mit den Cmdlets zu beschäftigen, die bereits vorhanden sind.

Cmdlets für eine Aufgabe finden


Cmdlets nehmen Ihnen Arbeit ab, denn der Autor des Cmdlets hat bereits für Sie eine Lösung für eine bestimmte Aufgabe programmiert. Ohne Cmdlets müssten Sie das selbst tun und zum Programmierer werden. Einen guten PowerShell-Skripter zeichnet also seine Fähigkeit aus, die notwendigen Befehle schnell zu finden und wiederzuverwenden, anstatt unnötig das Rad jeweils neu zu erfinden und selbst umfangreiche Skripte zu schreiben.

Damit die Suche nach Cmdlets kurzweilig für Sie wird, werden Sie sofort praktische Probleme lösen. Sie erhalten jeweils eine Aufgabe, die mit PowerShell erledigt werden soll. Danach suchen (und finden) Sie auf verschiedenen Wegen das passende Cmdlet und setzen es ein.

Suche nach Tätigkeit oder Tätigkeitsbereich

»Ein Computer stürzt häufiger ab. Um die Ursache zu ergründen, sollen die letzten 15 Fehlerereignisse aus dem Ereignisprotokoll des Systems ausgelesen werden.«

Um diese Aufgabe zu lösen, benötigen Sie ein Cmdlet, das Einträge aus einem Ereignisprotokoll lesen kann. Um ein solches zu finden, erinnern Sie sich an die Namensgebung aller Cmdlets: Ihr Name besteht jeweils aus einem Verb (einer Tätigkeit) und einem Substantiv (Nomen, Tätigkeitsbereich).

Überlegen Sie also zuerst, was das Cmdlet eigentlich leisten soll. Es soll Ihnen Informationen liefern. Das Verb hierfür lautet »Get«. Anfangs wird Ihnen das noch etwas willkürlich vorkommen (warum heißt es zum Beispiel nicht »List« oder...