Читать книгу PowerShell 7 und Windows PowerShell - Tobias Weltner - Страница 5

Inhalt

Оглавление

Vorwort

Wie Sie dieses Buch nutzen

Achtung

Noch mehr Unterstützung

1PowerShell: 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

3Skripte 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?

4Cmdlets – 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

5Die 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

6Arrays 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

7PowerShell-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

8Operatoren 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

9Textoperationen 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

10Anwendungen 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

11Typen 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

12Mit 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

13Eigene 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

14Parameter 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

15Pipeline-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

16PowerShellGet 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

17Fehlerhandling

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

18Windows 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

19Grafische Oberflächen gestalten

Eigene Fenster herstellen

GUI mit Code definieren

GUI mit XAML definieren

Beispiel: Dienststopper-Anwendung

Index

PowerShell 7 und Windows PowerShell

Подняться наверх