PowerShell 7 kennenlernen und einrichten
- Windows PowerShell 5.1 und PowerShell 7 im Vergleich: .NET-Basis, parallele Installation, pwsh.exe, Einsatz unter Windows, Linux und macOS
- Release-Modell mit LTS- und Stable-Versionen, Installation und Aktualisierung, unter Windows auch über Microsoft Update
- Arbeitsumgebung: Konsole, Visual Studio Code mit PowerShell-Erweiterung, Profile
- Hilfe und Befehle finden: Update-Help, Get-Help, Get-Command, Get-Member, Aliase
Mit Befehlen und der Pipeline arbeiten
- Cmdlet-Syntax, Parameter und Splatting
- Objekte in der Pipeline auswählen, sortieren, gruppieren, messen, mit Where-Object filtern und mit ForEach-Object verarbeiten
- Parameterbindung ByValue und ByPropertyName verstehen und gezielt nutzen
- Ausgaben formatieren und umleiten, Daten als CSV, JSON und XML exportieren, importieren und konvertieren
Provider, Dateien und Systeminformationen
- PSProvider und PSDrives: Dateisystem, Registrierung, Zertifikatspeicher, Umgebungsvariablen
- Dateien und Ordner verwalten, Textdateien auswerten, Zeichenkodierung (UTF-8 ohne BOM als Standard)
- Systeminformationen mit den CIM-Cmdlets abfragen und ändern – die WMI-v1-Cmdlets gibt es in PowerShell 7 nicht mehr
- Dienste, Prozesse und Ereignisprotokolle mit Get-WinEvent auswerten
Module und Pakete
- Module finden, laden und verwalten, PSModulePath verstehen
- Module aus der PowerShell Gallery mit Microsoft.PowerShell.PSResourceGet installieren und aktualisieren
- Module für Windows PowerShell über die Windows-PowerShell-Kompatibilität weiter nutzen
Vom Befehl zum Skript
- Variablen, Datentypen, Arrays, Hashtabellen und PSCustomObject
- Operatoren, darunter die mit PowerShell 7 eingeführten: ternärer Operator, Pipelinekettenoperatoren, Null-Sammeloperatoren und bedingte Null-Operatoren
- Kontrollstrukturen: if, switch, foreach, while
- Ausführungsrichtlinien, Skriptsignierung und sicherer Umgang mit Anmeldeinformationen
Funktionen, Fehlerbehandlung und eigene Module
- Funktionen mit Parametern, einfacher Parametervalidierung und kommentarbasierter Hilfe
- Fehlerbehandlung mit try, catch und finally, ErrorActionPreference, Fehleransicht ConciseView und Get-Error
- Eigene Funktionen als Skriptmodul bereitstellen
Remoteverwaltung
- PowerShell-Remoting über WinRM und über SSH einrichten
- Befehle mit Invoke-Command auf mehreren Computern ausführen, persistente Sitzungen (PSSession) nutzen
- Server ohne grafische Oberfläche, etwa Server Core, remote verwalten
Aufträge und Parallelisierung
- Hintergrundaufträge und Thread-Aufträge starten und auswerten
- Verarbeitung mit ForEach-Object -Parallel beschleunigen
- Skripts zeitgesteuert über die Windows-Aufgabenplanung ausführen
- Abschlussübung: Inventar mehrerer Server per Skript erfassen und als Bericht exportieren