Название | PowerShell 7 und Windows PowerShell |
---|---|
Автор произведения | Tobias Weltner |
Жанр | Математика |
Серия | |
Издательство | Математика |
Год выпуска | 0 |
isbn | 9783960104803 |
.NET-Methoden: Diese Befehle stammen aus den Programmbibliotheken des .NET Framework, auf denen auch PowerShell beruht. Die Standardbibliotheken und ihre Befehle sind deshalb immer plattformunabhängig. .NET-Befehle werden üblicherweise Methoden genannt und in PowerShell-Editoren wie ISE oder VSCode über IntelliSense-Menüs und Autovervollständigung angeboten. Get-Help und Get-Command sind bei dieser Befehlskategorie dagegen nutzlos.
Operatoren: Eine vierte Befehlskategorie bilden die Operatoren. Sie verknüpfen in der Regel die Informationen auf ihrer linken und rechten Seite miteinander, und es gibt viele verschiedene Operatoren, die auf Basis ihrer jeweiligen Aufgaben in Gruppen unterteilt werden. Die wichtigsten Operatorengruppen sind mathematische (arithmetische) Operatoren, Vergleichs- und Zuweisungsoperatoren.
Befehle kombinieren: Weil es nicht für alle Aufgaben der Welt maßgeschneiderte Befehle gibt, kann PowerShell Befehle kombinieren: Ein Befehl verfeinert oder ergänzt dabei die Resultate des vorangegangenen Befehls. Hierzu dienen wahlweise die PowerShell-Pipeline, die in Echtzeit und mit geringem Speicherbedarf Informationen durch eine Befehlskette »streamt«, und Variablen, die komplette Befehlsergebnisse ebenso wie Zwischenresultate von einem Befehl zum nächsten transportieren.
PowerShell ist eine sogenannte Automationssprache und soll das, was Sie zeitaufwendig in der grafischen Benutzeroberfläche per Klick erledigen, künftig automatisch oder »auf Zuruf« übernehmen.
Dabei geht es nicht nur um Bequemlichkeit und Zeitersparnis, sondern gerade im betrieblichen Bereich auch um Konsistenz, Nachvollziehbarkeit, Sicherheit und Qualitätskontrolle: Wer sich händisch durch eine Klickanweisung arbeitet, kann leicht einen Schritt vergessen. PowerShellSkripte dagegen arbeiten Aufgaben stoisch immer wieder mit derselben Präzision ab.
Natürlich könnte man Klicks einfach aufzeichnen, um Handgriffe zu automatisieren, und später bei Bedarf wieder »abspulen«. Sogenannte »Makrorekorder« tun genau das, und das Ergebnis ist meist fürchterlich: Eine grafische Benutzeroberfläche (GUI) ändert sich unkontrollierbar: Dialogfelder öffnen sich unerwartet, die Bildschirmauflösung variiert, und auch der Benutzer klickt vielleicht mitten dazwischen.
Klicks aufzuzeichnen und später wieder zuverlässig an den richtigen Adressaten zu senden, funktioniert also nicht besonders gut – und ist vor allem auch nicht besonders sinnvoll, denn die grafische Benutzeroberfläche ist ja nur eine Benutzerschnittstelle, mit der menschliche Wisch- und Klickgesten in Anweisungen übersetzt werden. CLIs (Command Line Interfaces) sind ebenfalls Benutzerschnittstellen, die lediglich anstelle von Menüs, Fenstern und Klicks textbasierte Befehle verwenden. PowerShell ruft also die Befehle direkt auf, die ein Klick ausgelöst hätte.
Und hier beginnt die eigentliche kreative Arbeit des Skriptens. Denn Sie müssten sich jeweils überlegen, welche Schritte nötig sind, um eine bestimmte Aufgabe zu erledigen, und dann die Befehle ermitteln, die diese Schritte bewerkstelligen.
Die schockierende Wahrheit ist, dass so etwas Erfahrung braucht. Anfangs werden Sie viel Zeit damit verbringen, Befehle zu suchen und sich mit ihnen vertraut zu machen. Diese Art Erfahrung kann dieses Buch zwar nicht magisch auf Sie übertragen, es wird Ihnen aber das »Wie« erklären und mit vielen Beispielen effektive Starthilfe geben, sodass im Idealfall schon der Weg zu dieser Erkenntnis unterhaltsam ist und (hoffentlich) Spaß macht.
In diesem Kapitel werden Sie fast alle wichtigen PowerShell-Techniken im Rahmen vieler Praxisbeispiele erleben. Detailliert verstehen müssen Sie die Beispiele in diesem Kapitel einstweilen aber (noch) nicht. Es kommt zunächst darauf an, ein Gefühl dafür entwickeln, was Power-Shell kann, welche Mittel es Ihnen zur Verfügung stellt und wie Strategien aussehen könnten, um (Ihre) Aufgaben damit zu automatisieren.
Wichtig
Bitte arbeiten Sie zuerst Kapitel 1 durch, denn dort werden wichtige Grundeinstellungen vorgenommen, die für alle folgenden Kapitel wichtig sind. Ohne diese Grundeinstellungen weigert sich Power-Shell möglicherweise, Skripte auszuführen. Wenn Sie in Eile sind, sollten Sie mindestens den Abschnitt »Zusammenfassung« am Ende des Kapitels lesen. Dort wird auch beschrieben, wie Sie die Listings dieses Buchs mit dem neuen Befehl L ohne Tippfehler und -arbeit automatisch herunterladen oder wahlweise direkt ausführen.
Befehle lösen Aufgaben
Wenn es für eine bestimmte Aufgabe einen maßgeschneiderten Befehl gibt, ist Automation unglaublich einfach: Sie rufen den Befehl auf, übergeben ihm Ihre speziellen Wünsche und führen ihn aus – Fall erledigt. Möchten Sie zum Beispiel ein ZIP-Archiv auspacken, genügt dieser eine Befehl:
PS> Expand-Archive -Path c:\temp\datei.zip -DestinationPath c:\temp\inhalte
Sie müssten bloß kurz die Angaben hinter dem Befehl an Ihre Situation anpassen und sicherstellen, dass die angegebene ZIP-Datei auch tatsächlich existiert. Den notwendigen Zielordner legt Expand-Archive selbst an, falls er noch fehlt.
Mit dem nächsten Befehl könnten Sie dann (zumindest auf Windows-Systemen) den neu angelegten Zielordner mit den Inhalten der ausgepackten ZIP-Datei im Explorer bewundern:
PS> explorer c:\temp\inhalte
Die beiden Befehle Expand-Archive und explorer unterscheiden sich ganz offensichtlich bereits in ihrer Namensgebung: Tatsächlich ist der Doppelname Expand-Archive ein Markenzeichen für einen PowerShell-Befehl (ein sogenannte Cmdlet, sprich »Commandlet«), während der Einzelname explorer eine eigenständige Anwendung repräsentiert, die auch außerhalb von Power-Shell aufrufbar ist (eine Application).
Je mehr Befehle Sie zur Verfügung haben, desto vielfältiger sind die Aufgaben, die Sie lösen können. Deshalb kombiniert PowerShell Befehle aus vier Quellen, um Ihnen ein möglichst breites Befehlsspektrum anbieten zu können:
PowerShell-Befehle (Cmdlets): Diese tragen immer einen Doppelnamen aus Verb und Nomen, lassen sich nur innerhalb der PowerShell ausführen, verfügen über eine ausführliche Hilfe und liefern hochwertige strukturierte Informationen (sogenannte Objekte). Diese Befehlsart wird Cmdlet genannt.Das »let« am Namensende von »Cmdlet« deutet an, dass diese Befehlskategorie ausschließlich innerhalb der PowerShell ausführbar ist und keinen vollständigen Befehl darstellt: Cmdlets erhalten allgemeine Funktionalitäten wie Hilfe sowie Ein- und Ausgaben zentral von PowerShell.
Anwendungen (Applications): Dies sind eigenständig auch außerhalb der PowerShell ausführbare Programme. PowerShell nennt diesen Befehlstyp Applications. Weil Applications in sich abgeschlossene Programme sind, kann hier jeder Programmierer seinen eigenen Standards folgen. Deshalb herrscht bei Namensgebung und Hilfe Wildwuchs, und Applications liefern – falls überhaupt – ausschließlich unstrukturierten Text zurück. Applications sind fast immer plattformspezifisch und aus den genannten Gründen meist lediglich zweite Wahl, aber wenn ein ähnliches Cmdlet nicht zur Verfügung steht, sind sie immerhin besser als nichts.
.NET-Befehle (Methoden): Diese Befehle werden Methoden genannt und stammen aus den Programmbibliotheken, auf denen PowerShell und alle PowerShell-Befehle basieren: dem sogenannten .NET Framework. Falls Sie kein passendes Cmdlet finden, können Sie die meisten Automationsaufgaben dennoch lösen, indem Sie direkt auf Basisbefehle des .NET Framework zugreifen.Weil Methoden eher kleingliedrigere Aufgaben erledigen und sich nicht mit Get-Command auffinden lassen, entspricht der Einsatz von .NET-Methoden eher der klassischen