Was kann die neue PowerShell auf den verschiedenen Betriebssystemen? Was kann sie nicht? Dieses Buch bietet eine praxisorientierte Einführung in die PowerShell-Welt mit vielen Beispielen. Lernen Sie wichtige Cmdlets, die Arbeit mit Objekten und den Gebrauch von Funktionen, Skripten und Modulen kennen. Für Umsteiger sind besonders die Unterschiede zur Windows PowerShell interessant. Grundlegende Kenntnisse im Umgang mit Windows, Linux oder macOS sind zum Verständnis des Buchs völlig ausreichend.
Inhaltsverzeichnis
Ü ber den Autor 11
Einleitung 23
Ü ber dieses Buch 23
Konventionen in diesem Buch 23
Was Sie nicht lesen mü ssen 24
Tö richte Annahmen ü ber den Leser 24
Wie dieses Buch aufgebaut ist 25
Symbole, die in diesem Buch verwendet werden 25
Wie es weitergeht 26
Teil I Installation Und Erste Berü hrung Mit Der Powershell 27
Kapitel 1 PowerShell Backstage 29
Geschichte der PowerShell 29
Ausgangssituation und Konzept 30
Die Windows PowerShell wird unentbehrlich 31
PowerShell Core - plattformü bergreifend und Open Source 32
Ü bersicht ü ber die Versionen der PowerShell 33
Projekt 'Glaskugel': Zukü nftige Versionen 34
PowerShell-Entwicklerteam: Ein Ausblick 34
Welche PowerShell-Version Sie verwenden sollten 35
Kurz und knackig 36
Kapitel 2 Installation und Konsole 37
Die Windows-PowerShell-Konsole starten und testen 38
Die Windows-PowerShell-Konsole konfigurieren 40
PowerShell Core installieren 41
PowerShell Core unter Windows installieren und testen 42
PowerShell Core unter Windows konfigurieren 43
PowerShell Core unter Linux installieren und testen 44
PowerShell Core unter Linux konfigurieren 45
PowerShell Core unter macOS installieren und testen 46
PowerShell Core unter macOS konfigurieren 47
Kurz und knackig 47
Kapitel 3 Etwas mehr Grafik, bitte! 49
Windows PowerShell ISE - bereits eingebaut und betriebsbereit 49
PowerShell Core - Visual Studio Code 51
Visual Studio Code herunterladen und installieren 51
Visual Studio Code starten 52
Sprachunterstü tzung fü r PowerShell einrichten 53
Weitere Anpassungen fü r Visual Studio Code vornehmen 56
Kurz und knackig 57
Kapitel 4 Konsole oder Komfort - eine Entscheidungshilfe 59
Eingabehilfen in der Konsole verwenden 59
Farbige Markierung eingegebener Befehle 60
Automatische Vervollstä ndigung von Befehlen 60
Befehlshistorie 62
Jede Menge Tastenkombinationen 62
Eingebaute Hilfen in Windows PowerShell ISE und Visual Studio Code 62
IntelliSense 63
Befehls-Add-On in der Windows PowerShell ISE 64
Weitere Hilfen 64
Welches Werkzeug andere Nutzer verwenden 65
Kurz und knackig 66
Teil II Powershell-Basiswissen 67
Kapitel 5 Gestatten - Cmdlet, PowerShell-Cmdlet 69
Cmdlets - die PowerShell-Befehle 69
Die grundlegende Syntax von Cmdlets verstehen 70
Erweiterte Syntax: Cmdlets verfü gen ü ber Parameter 71
Parameter - alles eine Frage des Typs 72
Gemeinsame Parameter 76
Cmdlets treten in thematischen Gruppen auf 80
Hilfe zur Selbsthilfe - PowerShell lä sst Sie nicht allein 82
Hilfe anfangs nur rudimentä r 82
Hilfe online verwenden 83
Hilfedateien auf den lokalen Rechner herunterladen 83
Hilfe lokal mit Get-Help verwenden 84
Unsicher? Get-Cmdlets sind sicher 87
Kurz und knackig 88
Kapitel 6 Objekte in der Pipeline 89
Ü berall Objekte 89
Objekte in der PowerShell 89
Methoden und Eigenschaften fü r Objekte anzeigen lassen 91
Fließ bandarbeit - die PowerShell-Pipeline 94
Hintergrund: Funktionsweise einer Pipeline 94
Schritt 1: Daten sammeln 95
Schritt 2: Daten bearbeiten 95
Schritt 3: Ergebnis verarbeiten 105
Praxisanwendung: Komplexe Befehlskette schrittweise entwickeln 111
Aufgabenstellung 112
Schritte zu einer mö glichen Lö sung 112
Kurz und knackig 113
Kapitel 7 Aliasse sind Spitznamen 115
Was sind Aliasse? 115
Vordefinierte Spitznamen 116
Spitznamen selbst ausgedacht 117
Spitznamen wieder lö schen 119
Spitznamen ex- und importieren 120
Praxis: Tipps und Fallstricke 122
Kurz und knackig 123
Kapitel 8 Provider und Laufwerke 125
PowerShell Provider 125
Was sind Provider? 125
Installierte Provider abrufen 126
Provider installieren und entfernen 127
Die Laufwerke in der PowerShell 128
Verfü gbare Laufwerke abrufen 128
Mit Location-Cmdlets durch Laufwerke navigieren 129
Kurzschreibweise bei Pfadangaben 131
Laufwerke installieren und entfernen 132
Cmdlets zum Umgang mit Providern und Laufwerken 134
Platzhalter einsetzen 134
Die Content-Cmdlets 136
Die Item-Cmdlets 138
Die ItemProperty-Cmdlets 144
Kurz und knackig 147
Kapitel 9 Umgang mit Zeichenketten 149
Text in der PowerShell 149
Anfü hrungszeichen: Einfache oder doppelte? 150
Verarbeitung von Variablen in Texten 151
Unterausdrü cke in Texten ausfü hren 152
Die Aufgabe von Backtick-Zeichen 153
Sonderzeichen eingeben 155
Mehrzeiliger Text mit Here-Strings 157
Operatoren fü r den Einsatz mit Texten 158
Der Call-Operator & 160
Typfrage - womit habe ich es zu tun? 161
Methoden eines String-Objekts 162
Eigenschaften eines String-Objekts 166
Benutzer nach Eingabe fragen 167
Einfache Eingabe mit Read-Host 167
Name und Kennwort abfragen 168
Ausgaben formatieren 169
Texte formatieren 171
Zahlen formatieren 171
Datumswerte formatieren 173
Exkurs: Muster mit regulä ren Ausdrü cken finden 176
Einordnung 176
Zeichenklassen in regulä ren Ausdrü cken 177
Wie oft darf ein Muster vorkommen? 178
Quantifizierer sind gierig 179
Anwendung von regulä ren Ausdrü cken in der PowerShell 180
Kurz und knackig 182
Kapitel 10 Bitte merken - PowerShell-Profile 183
Das Gedä chtnis der PowerShell 183
Zwischen verschiedenen Profilskripten wä hlen 184
Speicherort fü r Profilskripte 184
Ein Profil anlegen, bearbeiten und ausfü hren 186
PowerShell ohne Profil starten 187
Ausfü hrungsrichtlinie fü r Skriptdateien 188
Praxis: Farben und Prompt dauerhaft ä ndern 190
Farben in der Konsole ä ndern 190
Prompt in der Konsole ä ndern 193
Kurz und knackig 196
Teil III Skripting Mit Powershell 197
Kapitel 11 Programmiergrundlagen 199
Variablen 199
Vordefinierte Variablen 200
Eigene Variablen erstellen 202
PowerShell-Befehle rund um Variablen 203
Gü ltigkeitsbereich von Variablen 206
Spezialfä lle Array, Hashtable und Konstante 206
Datentyp flexibel 210
Variablen selbst typisieren 211
Operatoren 213
Arithmetische Operatoren 213
Zuweisungsoperatoren 213
Vergleichsoperatoren 214
Logische Operatoren 216
Kontrollstrukturen 217
Bedingte Anweisungen 217
Schleifen 224
Kurz und knackig 229
Kapitel 12 PowerShell-Skripte 231
Skripte allgemein 231
Ausfü hren von Skripten 232
Erste eigene Skripte 233
Das Skriptverzeichnis $PSScriptRoot 236
Sicherheitsfunktionen fü r PowerShell-Skripte 237
Digital signierte Skripte 237
Geschwindigkeit verschiedener Ansä tze testen 241
Anforderungen zur Skriptausfü hrung definieren 242
Gü ltigkeit von Variablen und 'Dot Sourcing' 244
Weitere Tipps zum Erstellen von Skripten 245
Eigenen Code kommentieren 246
Skripte mit Parametern verwenden 248
Skripte auß erhalb der PowerShell starten 249
Kurz und knackig 250
Kapitel 13 Funktionen 251
Was sind Funktionen? 251
Einfache Funktionen verstehen 252
Benannte Parameter verwenden 255
Parameter mit Standardwerten versehen 256
Switch-Parameter einsetzen 256
Einfache Positionsparameter verwenden 257
Objekte ü ber die Pipeline empfangen 258
Erweiterte Parameterdefinition verwenden 260
Hilfetext fü r die eigene Funktion erstellen 263
Zusä tzliche Informationen 266
Filter als Sonderform einer Funktion 269
Kurz und knackig 270
Kapitel 14 PowerShell-Module 271
Module - die Grundlagen 271
Mit den vorhandenen Modulen arbeiten 272
Modulverzeichnispfade 275
Modultypen 276
Zusä tzliche Module online finden, laden und installieren 277
PowerShell Gallery 277
Nichts geht ohne PowerShellGet 278
Anwendungsbeispiel 1: Modul zur Subnetzberechnung laden und einsetzen 279
Anwendungsbeispiel 2: Generator fü r zufä llige Kennwö rter aus der PowerShell Gallery einsetzen 281
Eigene Module verfassen und verwenden 282
Anwendungsbeispiel A: Ein einfaches Modul erstellen und verwenden 283
Anwendungsbeispiel B: Ein Manifest fü r ein Modul verwenden 285
Kurz und knackig 290
Teil IV Powershell-Spezialthemen 291
Kapitel 15 Fehlerbehandlung 293
Terminierende und nicht terminierende Fehler 293
Umgang mit bereits aufgetretenen Fehlern 294
Unterdrü ckung von Fehlermeldungen 295
Fehler nachträ glich auswerten 296
Mö gliche Fehler im Voraus behandeln 297
Fehlerbehandlung lokal mit try-catch-finally 298
Fehlerbehandlung global mit 'trap' 303
Fehler selbst auslö sen mit throw 306
Kurz und knackig 308
Kapitel 16 PowerShell-Remoting - Let's Work Together 309
Fernzugriff allgemein 309
Voraussetzungen fü r PowerShell-Remoting 310
Remoting ü ber WinRM 310
Fernzugriff innerhalb einer Domä ne 311
Fernzugriff auß erhalb einer Domä ne 311
PowerShell-Remoting fü r den eigenen Rechner aktivieren 312
Remoting unter Windows wieder deaktivieren 314
Remoting ü ber SSH 314
OpenSSH unter Windows konfigurieren 315
OpenSSH unter Linux installieren und konfigurieren 316
OpenSSH unter macOS einrichten 317
Voraussetzungen geschaffen - mit Remoting arbeiten 318
Cmdlets mit dem Parameter -ComputerName 318
Invoke-Command verwenden 319
Eine interaktive Sitzung starten 322
Eine dauerhafte Verbindung herstellen 323
Kurz und knackig 327
Kapitel 17 Objektorientierte Programmierung 329
Kurze Einfü hrung und Begriffsklä rung 329
Mit eigenen Klassen arbeiten 330
Eine einfache Klasse definieren 330
Objekte erstellen 331
Attribute in einer Klasse definieren 332
Methoden in einer Klasse definieren 335
Konstruktoren einer Klasse hinzufü gen 340
Basisklassen, abgeleitete Klassen und Vererbung 343
Zusatz: Enumeratoren definieren und verwenden 346
Kurz und knackig 348
Teil V Der Top-Ten-Teil 349
Kapitel 18 Zehn grundlegende Tipps 351
Grundlagen beachten 351
Beim Ausprobieren protokollieren 352
Befehle in der History schnell finden 352
Standardverhalten fü r die Ausfü hrung eines Cmdlets vorgeben 353
Tipps zum Erstellen von Skripten oder Funktionen 353
Eine Datei mit der verknü pften Anwendung ö ffnen 354
Skript-Variablen in der Konsole weiterverwenden 354
Dokumentation als guter Freund 355
In offiziellen Onlinequellen stö bern 355
Online suchen 356
Kapitel 19 10 (+ 5) weitere Tipps 357
Splatting verwenden 357
Bei Ausgaben genauere Informationen anzeigen 359
Berechnete Eigenschaften verwenden 359
Erhö hte Rechte einfach einsetzen 361
PowerShell unerwartet: Zufallszahlen 361
Reservierte Wö rter 362
PowerShell Community Extensions (PSCX) testen 363
Fü r alle Betriebssysteme: Klasse [Environment] nutzen 363
Fü r alle Betriebssysteme: Schreibweise von macOS und Linux verwenden 363
Fü r alle Betriebssysteme: Keine Aliasse verwenden 364
Fü r alle Betriebssysteme: Das richtige Trennzeichen fü r PATH verwenden 364
Windows PowerShell: Schö n war es 364
Windows PowerShell: Ergebnisse in einem eigenen Fenster ö ffnen 364
Windows PowerShell: Verwaltung des Active Directory 365
Windows PowerShell: Module in der Windows PowerShell 365
Stichwortverzeichnis 367