Book description
PowerShell ist eine hochmoderne Shell-Sprache. Im Windows-Umfeld entstanden, ist sie inzwischen für Linux und macOS und die Cloud verfügbar und wird sogar zur Gerätesteuerung eingesetzt. Sie ist plattformunabhängig und als Open-Source-Software sicher und zukunftsfähig.
Dr. Tobias Weltner, einer der weltweit führenden PowerShell-Experten, erklärt Schritt für Schritt, praxisnah und mit wenigen Zeilen Code, wie man wiederkehrende Aufgaben automatisiert: Ob Sie beruflich Server oder Software remote konfigurieren oder privat Ihre Fotosammlung sortieren oder Farbwechsellampen fernsteuern möchten – fast alles ist möglich.
PowerShell ist ein mächtiges »IT-Allzweckwerkzeug« - und wer es beherrscht, steigert ganz erheblich seine Lösungskompetenz und seinen Wert für ein Unternehmen.
Table of contents
- Cover
- Titel
- Impressum
- Inhalt
- Vorwort
-
1 PowerShell: Erste Schritte
- PowerShell installieren
- Windows-Betriebssystem
- PowerShell nachrüsten: macOS und Linux
- Kompatibilität der PowerShell
- PowerShell einrichten
- Vorsicht mit Administratorrechten!
- Interaktive Befehle eingeben
- Autovervollständigung: Tippfehler vermeiden
- Befehlszeilen erneut verwenden
- Groß- und Kleinschreibung
- Unvollständige und mehrzeilige Eingaben
- PowerShell-Hilfe aus dem Internet nachladen
- Skriptausführung erlauben
- Weitere PowerShell-Einschränkungen
- Wichtige PowerShell-Werkzeuge
- PowerShell-ISE-Editor
- VSCode (Visual Studio Code)
- Windows-Terminal
- Codebeispiele automatisch herunterladen
- Befehl zum Herunterladen von Codebeispielen nachrüsten
- Beispielcode in Zwischenablage kopieren
- Beispielcode sofort ausführen
- Profilskripte: PowerShell dauerhaft anpassen
- Einzelne Profilskripte verwenden
- Fragen stellen
- Alle Skripte herunterladen
- Zusammenfassung
- Ausführungsrichtlinie festlegen
- Hilfe nachrüsten
- Windows PowerShell aktualisieren
- Hilfsbefehle zum Download von Beispielcode
- »Fehlende Befehle« verstehen
- Zusätzliche Werkzeuge
-
2 Überblick: Was PowerShell leistet
- Befehle lösen Aufgaben
- Literale
- Text
- Zahlen
- Datum und Zeit
- Kommentare
- Cmdlets: die PowerShell-Befehle
- Nach Tätigkeitsbereich suchen (»Noun«)
- Nach Tätigkeit suchen (»Verb«)
- Nach Herkunft suchen
- Standardisierte Verben
- Cmdlets per Fenster suchen
- Syntax verstehen
- Ausführliche Hilfe und Beispiele
- Anwendungsprogramme (Applications)
- Applications starten
- Applications finden
- Systembefehle nutzen
- Hilfe für Applications abrufen
- .NET-Methoden
- Methoden verwenden
- Hilfe für Methoden
- Noch mehr Methoden
- Methoden: vielseitiger, aber kleinteiliger
- Operatoren
- Operatoren nachschlagen
- Vergleichsoperatoren
- Textoperatoren
- Zuweisungen und Pipeline
- Zahlenreihen
- Befehle verbinden
- Das Türchen-Modell
- Normalfall: »Türchen 3«
- Modernes Pipeline-Streaming: »Türchen 1«
- Klassische Variablen: »Türchen 2«
- Neue Befehle nachrüsten
- Beispiel 1: QR-Codes generieren
- Beispiel 2: Automatische HTML-Reports
- Beispiel 3: Musik spielen
- Zusammenfassung
-
3 Skripte und Funktionen
- PowerShell-Skripte verstehen
- Skriptcode eingeben
- Skripte mit dem ISE-Editor entwickeln
- Neues Skript anlegen
- Skripte mit dem VSCode-Editor entwickeln
- Neue Skripte anlegen
- Skripte ausführen
- Skripte innerhalb von PowerShell starten
- Skripte außerhalb von PowerShell starten
- Skripte automatisch starten
- Skriptstart durch Task Scheduler
- Profilskripte – die Autostartskripte
- Profilskript anlegen und öffnen
- Typische Profilskriptaufgaben durchführen
- Neue Befehle: Funktionen
- Schritt 1: Nützlicher Code
- Schritt 2: Als Funktion verpacken
- Schritt 3: Parameter definieren
- Schritt 4: Funktionen dauerhaft verfügbar machen
- Funktionen im Modul permanent verfügbar
- Die gemeinsame Grundlage: der Skriptblock
- Skripte sind gespeicherte Skriptblöcke
- Funktionen sind vorgeladene Skriptblöcke
- Module laden Funktionen bei Bedarf in den Speicher
- Skript oder Funktion?
-
4 Cmdlets – PowerShell-Befehle
- Parameter steuern Cmdlets
- Argumente an Parameter übergeben
- Parameter machen Cmdlets vielseitig
- Politisch inkorrekt: positionale Argumente
- Gratiszugabe: »Common Parameters«
- Auf Fehler reagieren
- Vielseitigkeit durch Parametersätze
- »Schmal, aber tief« – Cmdlets sind Spezialisten
- Mehrere Parametersätze: noch mehr Vielseitigkeit
- Praxis: Ereignisse aus dem Ereignislogbuch lesen
- »ISA/HASA« – wie Cmdlets in der Pipeline funktionieren
- Das »ISA/HASA«-Prinzip
- Praxisnutzen
- Vorteile des Pipeline-Streamings
-
5 Die PowerShell-Pipeline
- Aufbau der PowerShell-Pipeline
- Befehle reichen Ergebnisse weiter
- Pipeline steuert Befehle
- Prinzipieller Aufbau der Pipeline
- Die sechs wichtigsten Pipeline-Befehle
- Select-Object
- Detailinformationen festlegen
- Unsichtbare Eigenschaften sichtbar machen
- Eine bestimmte Eigenschaft auswählen: -ExpandProperty
- Selbst festlegen, welche Informationen wichtig sind
- Weitere Informationen anfügen
- -First, -Last und -Skip
- Berechnete Eigenschaften
- Where-Object
- Clientseitiger Universalfilter
- Leere Elemente aussortieren
- Fortgeschrittene Syntax bietet mehr Möglichkeiten
- Out-GridView: das »menschliche« Where-Object
- Sort-Object
- Cmdlet-Ergebnisse sortieren
- Sortierung mit anderen Cmdlets kombinieren
- Datentyp der Sortierung ändern
- Mehrere Spalten in umgekehrter Sortierung
- Group-Object
- Häufigkeiten feststellen
- Daten gruppieren
- Berechnete Gruppierungskriterien
- Measure-Object
- Statistische Berechnungen
- Ordnergrößen berechnen
- Foreach-Object
- Grundprinzip: eine Schleife
- Format-Cmdlets
- Gefährlich: Format-Cmdlets verändern Objekte
- Mehrspaltige Anzeigen
- Tabellenausgabe mit Gruppierung
- 6 Arrays und Hashtables
-
7 PowerShell-Laufwerke
- Dateisystemaufgaben meistern
- Cmdlets für das Dateisystem finden
- Erste Schritte
- Ordner anlegen
- Dateien anlegen und Informationen speichern
- Encoding von Textdateien
- Encodings sichtbar machen
- Dateien finden
- Dateien und Ordner kopieren
- Dateien umbenennen
- Dateien und Ordner löschen
- Größe eines Laufwerks ermitteln
- Größe eines Ordners ermitteln
- Umgebungsvariablen
- Alle Umgebungsvariablen auflisten
- Auf einzelne Umgebungsvariablen zugreifen
- Umgebungsvariablen ändern
- Windows-Registrierungsdatenbank
- Schlüssel suchen
- Werte lesen
- Neue Registry-Schlüssel anlegen
- Registry-Schlüssel löschen
- Werte hinzufügen, ändern und löschen
- Virtuelle Laufwerke und Provider
- Neue PowerShell-Laufwerke
- Ohne Laufwerksbuchstaben direkt auf Provider zugreifen
- -Path oder -LiteralPath?
- Existenz eines Pfads prüfen
- Pfadnamen auflösen
-
8 Operatoren und Bedingungen
- Operatoren – Aufbau und Namensgebung
- Wie Operatornamen aufgebaut sind
- Unäre Operatoren
- Zuweisungsoperatoren
- Vergleichsoperatoren
- Ternary-Operator
- Unterscheidung zwischen Groß- und Kleinschreibung
- Unterschiedliche Datentypen vergleichen
- Vergleiche umkehren
- Vergleiche kombinieren
- Vergleiche auf Arrays anwenden
- Bedingungen
- if-Bedingung
- switch-Bedingung
- Where-Object
- Null-Koaleszenz-Operatoren
- Pipeline-Verkettungsoperatoren
-
9 Textoperationen und reguläre Ausdrücke
- Texte zusammenfügen
- Doppelte Anführungszeichen lösen Variablen auf
- Der Formatierungsoperator -f
- Array-Elemente in Text umwandeln
- Textstellen finden und extrahieren
- Texte splitten
- Informationen in Texten finden
- Reguläre Ausdrücke: Textmustererkennung
- Erste Schritte: Textmuster basteln
- Eigene reguläre Ausdrücke konzipieren
- Textstellen ersetzen
- Einfache Ersetzungen
- Sichere Ersetzungen mit -replace
- Mehrere Zeichen durch eins ersetzen
- Split und Join: eine mächtige Strategie
- Dateipfade ändern
- X500-Pfade auslesen
-
10 Anwendungen und Konsolenbefehle
- Programme starten
- Optionen für den Programmstart festlegen
- Argumente an Anwendungen übergeben
- Hilfe für Konsolenbefehle anzeigen
- Beispiel: Lizenzstatus von Windows überprüfen
- Ergebnisse von Anwendungen weiterverarbeiten
- Error Level auswerten
- Fragen an Benutzer stellen mit choice.exe
- Rückgabetext auswerten
- Laufende Programme steuern
- Feststellen, ob ein Prozess läuft
- Auf einen Prozess warten
- Einstellungen laufender Prozesse ändern
- Prozesse vorzeitig abbrechen
-
11 Typen verwenden
- Typumwandlungen
- Geeignete Datentypen auswählen
- Explizite Umwandlung
- Deutsches Datumsformat mit dem Operator -as
- Verkettete Umwandlungen
- Typen: optimale Informationsbehälter
- Implizite Umwandlung
- Typisierte Variablen
- Parameter und Argumente
- Vergleichsoperationen
- Statische Methoden eines Typs verwenden
- Dateiextension ermitteln
- Mathematische Funktionen
- Zahlenformate konvertieren
- DNS-Auflösung
- Umgebungsvariablen
- Pfade zu Systemordnern finden
- Konsoleneinstellungen
- Spezielle Datumsformate lesen
- Statische Eigenschaften verwenden
- Neue .NET-Typen finden
- Type Accelerators untersuchen
- Typen nachladen
- Assembly-Namen feststellen
- Aktuell geladene Assemblies auflisten
- Zusätzliche Assembly nachladen
- Assembly aus Datei nachladen
-
12 Mit Objekten arbeiten
- Objekte kennenlernen
- Objekte funktionieren wie beschriftete Schubladen
- Typisierte Variablen
- Objekteigenschaften erforschen
- Eigenschaften lesen
- Eigenschaften ändern
- Methoden verwenden
- Zusammenfassende Systematik
- Eigenschaften
- Methoden
- Hilfe finden
- Neue Objekte herstellen
- Konstruktoren verstehen
- Ein Credential-Object zur automatischen Anmeldung
- Eigene Objekte erstellen
-
13 Eigene Typen und Attribute
- Typen (Klassen) selbst herstellen
- Einen eigenen Typ erfinden
- Neue Objekte eines Typs generieren
- Konstruktoren hinzufügen
- Methoden zum Typ hinzufügen
- Vererbung von Typen
- Konstruktoren werden nicht geerbt
- Philips Hue Smart Home mit Typen steuern
- Kontakt zur Philips Hue Bridge herstellen
- Lampen- und Schalterinventar
- Lampen und Steckdosen ansprechen
- Attribute erstellen
- SecureString-Transformationsattribute
- Auf API-Funktionen zugreifen
- API-Funktion einsetzen
- Wiederverwertbare PowerShell-Funktion herstellen
-
14 Parameter für Fortgeschrittene
- Argumentvervollständigung
- Statische Autovervollständigung
- Autovervollständigung über Enumerationsdatentyp
- Eigene Enumerationsdatentypen erstellen
- Autovervollständigung über ValidateSet
- Dynamische Argumentvervollständigung
- Zuweisungen mit Validierern überprüfen
- ValidateSet
- ValidateRange
- ValidateLength
- ValidatePattern
- ValidateCount
- ValidateScript
- Nullwerte und andere Validierer
- Parameter in ParameterSets einteilen
- Gegenseitig ausschließende Parameter
- Binding über Datentyp
- Parameter in mehreren Parametersätzen
- Simulationsmodus (-WhatIf) und Sicherheitsabfrage (-Confirm)
- Festlegen, welche Codeteile übersprungen werden sollen
- Weiterleitung verhindern
- Gefährlichkeit einer Funktion festlegen
- Dynamische Parameter
- Dynamische Parameter selbst definieren
- Splatting: Argumente an Parameter binden
- Splatting im Alltag einsetzen
- Übergebene Parameter als Hashtable empfangen
- Mit Splatting Parameter weiterreichen
-
15 Pipeline-fähige Funktionen
- Anonyme Pipeline-Funktion
- Prototyping
- Pipeline-fähige Funktion erstellen
- Benannte Parameter
- Where-Object durch eine Funktion ersetzen
- Kurzes Resümee
- Parameter und Pipeline-Kontrakt
- ISA-Kontrakt: Pipeline-Eingaben direkt binden
- HASA-Kontrakt: Objekteigenschaften lesen
- HASA und ISA kombinieren
- CSV-Dateien direkt an Funktionen übergeben
- Aliasnamen für Parameter
-
16 PowerShellGet und Module
- PowerShellGet – die PowerShell-Softwareverteilung
- Grundlage »PackageManagement«
- PowerShellGet – Softwareverteilung per Cmdlets
- Wo PowerShell Module lagert
- Unterschiede zwischen Windows PowerShell und PowerShell
- Installierte Module untersuchen
- Module mit PowerShellGet nachinstallieren
- Module finden und installieren
- Modul herunterladen
- Modul testweise ausführen
- Modul dauerhaft installieren
- Module aktualisieren
- Side-by-Side-Versionierung
- Eigene Module veröffentlichen
- Eigene Module herstellen
- Neue Manifestdatei anlegen
- Neue Moduldatei anlegen
- Modul testen
- Nächste Schritte
- Eigene Module verteilen
- Netzwerkfreigabe
- Modul in Repository übertragen
- Modul aus privatem Repository installieren
- 17 Fehlerhandling
-
18 Windows PowerShell-Remoting
- PowerShell-Remoting aktivieren
- Zugriff auch auf Windows-Clients
- Remoting-Verbindung überprüfen
- NTLM-Authentifizierung erlauben
- PowerShell-Remoting überprüfen
- Erste Schritte mit PowerShell-Remoting
- Befehle und Skripte remote ausführen
- Kontrolle: Wer besucht »meinen« Computer?
- Remotefähigen Code entwickeln
- Argumente an Remote-Code übergeben
- Ergebnisse vom Remote-Code an den Aufrufer übertragen
- Fan-Out: integrierte Parallelverarbeitung
- ThrottleLimit: Parallelverarbeitung begrenzen
- Double-Hop und CredSSP: Anmeldeinfos weiterreichen
- Eigene Sitzungen verwenden
- Eigene Sitzungen anlegen
- Parallelverarbeitung mit PSSessions
- SSH-basiertes Remoting
- SSH-Remoting aktivieren
- Enter-PSSession über SSH
- Invoke-Command über SSH
- Unbeaufsichtigte Ausführung und Parallelbearbeitung
- 19 Grafische Oberflächen gestalten
- Index
Product information
- Title: PowerShell 7 und Windows PowerShell
- Author(s):
- Release date: July 2021
- Publisher(s): dpunkt
- ISBN: 9783960091639
You might also like
book
Windows PowerShell
PowerShell ist die Standard-Skriptsprache für Windows-Automation und mittlerweile unverzichtbar für Administratoren und ambitionierte Windows-Anwender. Mit PowerShell …
book
Windows PowerShell for Developers
Want to perform programming tasks better, faster, simpler, and make them repeatable? Take a deep dive …
book
Windows PowerShell, 2nd Edition
PowerShell ist die Standard-Skriptsprache für die Windows-Automation und nach wie vor unverzichtbar für Administratoren und ambitionierte …
book
PowerShell 5.0
In diesem Standardwerk zu PowerShell finden Einsteiger und Profis fundiertes Hintergrundwissen kombiniert mit praxisnahen und sofort …