Читать книгу PowerShell 7 und Windows PowerShell - Tobias Weltner - Страница 122
Kapitel 2 Überblick: Was PowerShell leistet
ОглавлениеIn diesem Kapitel:
Cmdlets: die PowerShell-Befehle
Anwendungsprogramme (Applications)
Ausführlich werden in diesem Kapitel die folgenden Aspekte erläutert:
Befehle: Mit Befehlen lösen Sie einzelne Aufgaben. Je mehr Befehle zur Verfügung stehen, umso einfacher wird die Automation, denn umso mehr unterschiedliche Dinge können Sie mit PowerShell dann tun. Deshalb stellt PowerShell einen möglichst umfangreichen Befehlswortschatz zusammen, der aus PowerShell-Befehlen (den sogenannten Cmdlets, sprich »Commandlets«), Anwendungsprogrammen und .NET-Methoden besteht.
Cmdlets: Die Namen dieser Befehle setzen sich immer aus einem Verb und einem Nomen zusammen, getrennt durch einen Bindestrich. Dank dieser Systematik kann man mit Get-Command gezielt nach Cmdlets suchen. Cmdlets stammen grundsätzlich aus externen Modulen, die nachrüstbar sind (zum Beispiel mit Install-Module). Wenn Cmdlets intern aus reinen PowerShell-Befehlen bestehen, nennt man sie auch Functions.
Anwendungen (Applications): Anwendungsprogramme sind für PowerShell gleichwertige Befehle und können ebenso wie Cmdlets mit Get-Command gesucht werden. PowerShell nennt sie Applications. Liegt die Anwendung in einem Ordner, der in der Umgebungsvariablen Path aufgelistet ist, genügt der Dateiname der Anwendung (ohne Dateierweiterung, beispielsweise explorer, grep, regedit, ping, netstat).Andernfalls muss der relative oder absolute Pfadname angegeben werden. Wird der Pfad in Anführungszeichen gesetzt, muss der Text mit dem Call-Operator & gestartet werden. Welche Anwendungen tatsächlich zur Verfügung stehen, hängt vom verwendeten Betriebssystem und der darauf installierten Software ab.
.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.