Andreas Dittfurth arbeitet als langjähriger Microsoft Certified Trainer (MCT) im Bereich Netzwerkadministration intensiv mit PowerShell und Windows Server. Er ist darüber hinaus als Consultant für Firmen tätig, die er bei Bildungsprojekten mit virtuellen 2D- und 3D-Lernumgebungen unterstützt.
Jetzt für Windows, Linux und macOS
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.
Sie erfahren
Ü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