Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Cover
Titel
Impressum
Inhalt
Vorwort
Wie Sie dieses Buch nutzen
Achtung
Noch mehr Unterstützung
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
Arrays verwenden
Auf Array-Elemente zugreifen
Eigene Arrays (und einige Fallen)
Automatische Array-Erzeugung
Manuelle Array-Erzeugung
Hashtables – »sprechende Arrays«
Hashtables in Objekte umwandeln
Neue Objekte mit Eigenschaften initialisieren
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
Fehlermeldungen unterdrücken
Bestimmen, wie Cmdlets auf Fehler reagieren
Fehler mitprotokollieren lassen
Erfolg eines Befehlsaufrufs prüfen
Fehlerhandler einsetzen
Lokaler Fehlerhandler: try…catch
Globaler Fehlerhandler: Trap
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
Eigene Fenster herstellen
GUI mit Code definieren
GUI mit XAML definieren
Beispiel: Dienststopper-Anwendung
Index
← Prev
Back
Next →
← Prev
Back
Next →