O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Scripting mit Windows PowerShell 3.0 - Der Workshop

Book Description

Dieses Buch weist Ihnen den Weg, Systemadministration mit PowerShell 3.0 zu automatisieren, auch wenn Sie noch keinerlei Erfahrung mit Skripts oder Programmierung haben.

Table of Contents

  1. Einführung
    1. Wer braucht eigentlich PowerShell?
      1. Moderne Lernkurve
      2. Computer – ich/ich – Computer: PowerShell als Fremdsprache
      3. Eine strategische Plattform
      4. Plattformübergreifende Technik
      5. Persönliche Entwicklung
    2. Wie Sie dieses Buch nutzen
    3. Noch mehr Unterstützung
  2. I. Einführung
    1. 1. PowerShell kennenlernen
      1. PowerShell starten
        1. PowerShell einrichten
        2. Moderne ISE-Konsole starten
      2. Erste Schritte mit PowerShell
        1. Wichtige Vorsichtsmaßnahmen
        2. Befehle eingeben
          1. Fehlermeldungen sind Freunde
          2. Ergebnisse empfangen
          3. IntelliSense-Unterstützung im ISE-Editor
          4. Autovervollständigung in der PowerShell-Konsole
        3. Farbcodierungen in ISE
        4. Rechnen mit PowerShell
        5. Unvollständige und mehrzeilige Eingaben
      3. Tippfehler vermeiden und Eingaben erleichtern
        1. Autovervollständigung
        2. Pfadnamen vervollständigen
        3. Befehlszeilen erneut verwenden
        4. Befehlsnamen autovervollständigen
        5. Parameter-Autovervollständigung
        6. Argument-Autovervollständigung
      4. PowerShell-Hilfe aus dem Internet nachladen
        1. Hilfe in anderer Sprache installieren
        2. Hilfe ohne Internetzugang installieren
      5. Klassische Konsole oder moderner ISE-Editor?
        1. Einschränkungen in ISE
        2. Einschränkungen der klassischen Konsole
      6. Testen Sie Ihr Wissen!
      7. Zusammenfassung
    2. 2. Cmdlets – die PowerShell-Befehle
      1. Alles, was Sie über Cmdlets wissen müssen
      2. Cmdlets für eine Aufgabe finden
        1. Suche nach Tätigkeit oder Tätigkeitsbereich
        2. Mit ISE nach Cmdlets suchen
        3. Mit der Hilfe nach Cmdlets suchen
      3. Mit Parametern Wünsche formulieren
        1. Parameter wecken das volle Potenzial der Cmdlets
          1. Nur das Datum oder nur die Zeit ausgeben
          2. Den Wochentag eines bestimmten Datums errechnen
          3. Die aktuelle Kalenderwoche anzeigen
          4. Das Datum vor 48 Stunden berechnen
        2. Drei universelle Parametertypen
          1. Benannte Parameter
          2. Switch-Parameter
          3. Positionale Parameter
        3. Common Parameter – allgemeine Parameter für alle Cmdlets
        4. Fehlermeldungen unterdrücken
        5. Unvollständige Parameternamen
          1. Parameter mit Aliasnamen abkürzen
        6. Parameter-Binding sichtbar machen
      4. Cmdlets und virtuelle Laufwerke
        1. Typische Dateisystemaufgaben meistern
        2. Weitere »virtuelle Laufwerke« nutzen
        3. Registrierungsdatenbank-Werte lesen und schreiben
          1. Schlüssel anlegen, auflisten, löschen
          2. Werte hinzufügen, ändern und löschen
        4. Virtuelle Laufwerke und Provider verstehen
        5. Neue virtuelle Laufwerke
        6. Laufwerks-Cmdlets zusammengefasst
        7. In PowerShell-Laufwerken navigieren
      5. Neue Cmdlets aus Modulen nachladen
        1. Alle Cmdlets entstammen Modulen
        2. Neue Module automatisch nachladen
        3. Auslaufmodell: Snap-Ins
      6. Alias: Zweitname für Cmdlets
        1. Aliase sind keine neuen Befehle
        2. Befehlstypen ermitteln
        3. Klassische Interpreterbefehle sind Cmdlets
        4. Eigene Aliase anlegen
      7. Testen Sie Ihr Wissen!
      8. Zusammenfassung
    3. 3. Anwendungen und Konsolenbefehle
      1. Programme starten
        1. Optionen für den Programmstart festlegen
          1. Warten, bis ein Programm wieder beendet ist
          2. Programme unter anderem Benutzernamen ausführen
        2. Nicht unterstützte Konsolenbefehle im ISE-Editor
      2. Argumente an Anwendungen übergeben
        1. Welche Argumente unterstützt eine Anwendung?
          1. Informationen über das System abrufen
          2. Lizenzstatus von Windows überprüfen
        2. Argumentübergabe kann scheitern
      3. Ergebnisse von Anwendungen weiterverarbeiten
        1. Error Level auswerten
        2. Fragen an Benutzer stellen mit choice.exe
        3. Rückgabetext empfangen
          1. Simpler Text
          2. Mehrzeiliger Text
          3. Mehrspaltiger Text
          4. Textmuster finden
      4. Laufende Programme steuern oder beenden
        1. Auf laufende Prozesse zugreifen
        2. Einstellungen laufender Prozesse ändern
        3. Auf laufende Prozesse warten
        4. Prozesse vorzeitig abbrechen
        5. Texteingaben an Konsolenbefehle senden
      5. Testen Sie Ihr Wissen!
      6. Zusammenfassung
    4. 4. Eigene und fremde Skripts einsetzen
      1. PowerShell-Skripts verfassen
        1. Skriptcode eingeben
        2. Eingabehilfen spüren Tippfehler auf
        3. Skript ausführen
        4. Sicherheitseinstellungen und Ausführungsrichtlinien
      2. Skripts als Befehlserweiterung
        1. Skripts wie Befehle ausführen
        2. Skripts mit Parametern ausstatten
        3. Rückgabewerte des Skripts festlegen
      3. Profilskripts – die Autostartskripts
        1. Vier verschiedene Profilskripts – pro Host
        2. Profilskript anlegen und öffnen
        3. Typische Profilskript-Aufgaben durchführen
        4. Persönliche PowerShell-Anpassungen übertragen
      4. Skripts außerhalb von PowerShell starten
        1. PowerShell-Startoptionen
        2. Skript als geplante Aufgabe ausführen
          1. Mit schtasks.exe klassische Aufgaben einrichten
          2. Mit dem Modul PSScheduledJob in PowerShell 3.0 Aufgaben anlegen
      5. Nicht-PowerShell-Skripts öffnen
        1. Stapel- oder Stapeldateien
        2. VBScript-Dateien ausführen
      6. Zusammenfassung
  3. II. Fortgeschrittene Anwender
    1. 5. Die PowerShell-Pipeline
      1. Aufbau der PowerShell-Pipeline
        1. Prinzipieller Aufbau der Pipeline
        2. Die sechs wichtigsten Pipeline-Befehle
      2. Spalten auswählen mit Select-Object
        1. Exkurs: Formatierungssystem von PowerShell
        2. Unsichtbare neue Spalten anzeigen
        3. Wahre Spaltennamen ermitteln
        4. Platzhalterzeichen verwenden
        5. Reine Spalteninhalte weitergeben
        6. Die ersten oder letzten Ergebnisse auswählen
      3. Ergebnisse filtern mit Where-Object
        1. Where-Object: Nicht sehr effizient...
        2. ...aber enorm praktisch!
        3. Leere Elemente aussortieren
        4. Fortgeschrittene Syntax bietet noch mehr Möglichkeiten
        5. Dateiinhalte filtern
        6. IP-Adressen bestimmen
      4. Ergebnisse sortieren mit Sort-Object
        1. Cmdlet-Ergebnisse sortieren
        2. Nach mehreren Spalten sortieren
        3. Sortierung mit anderen Cmdlets kombinieren
      5. Frei programmierbare Aktion mit ForEach-Object
        1. Grundprinzip: Eine Schleife
          1. Fortschrittsanzeige einblenden
          2. Ergebnisse verfeinern
          3. Textdateien parsen
      6. Ergebnisse analysieren mit Group-Object
      7. Häufigkeit und Gesamtgrößen: Measure-Object
        1. Statistische Berechnungen
        2. Ordnergrößen berechnen
      8. Frei programmierbare Eigenschaften
        1. Datentyp der Sortierung ändern
        2. Gruppierung nach bestimmten Textteilen
        3. Umwandlung von Byte in MB
        4. Hashtabelle: Mehrere Werte übergeben
          1. Mit Hashtabelle dynamische Spalten anlegen
        5. Mehrere Spalten in umgekehrter Sortierung
        6. Mehrspaltige Anzeigen
        7. Neue Einträge hinzufügen
        8. Spaltenbreite, Bündigkeit und Gruppenüberschriften
        9. Frei wählbare Gruppierungskriterien
      9. Pipeline und Performance: Optimierungen
        1. Flaschenhals Pipeline
        2. Klassische Schleifen sind wesentlich schneller
        3. Pipeline ist wesentlich reaktionsfreudiger
        4. Weniger Speicherbedarf oder höhere Geschwindigkeit?
        5. Pipeline vorzeitig abbrechen
      10. Testen Sie Ihr Wissen!
      11. Zusammenfassung
    2. 6. Ergebnisse ausgeben und formatieren
      1. Ergebnisse als Text ausgeben
        1. Optimierte Spaltenbreiten
          1. Mehrzeilige Ausgaben
        2. Listendarstellung erzwingen
        3. Mehrspaltige Anzeige
          1. Gruppierte Tabellen erzeugen
        4. Textausgabe an andere Ziele leiten
          1. Out-Host: Ausdrückliche Ausgabe in die Konsole
          2. Out-Null: Ergebnisse verschlucken
          3. Out-File: Konsolenausgaben in Textdateien umlenken
        5. Out-Printer: Ergebnisse zu Papier bringen
          1. Out-String: Textdarstellungen erzwingen
          2. Textbasierte Pipeline und Grep
        6. Out-WinWord: Ergebnisse direkt an Microsoft Word senden
        7. Out-PDF: Mit Microsoft Word PDF-Reports erstellen
      2. Ergebnisse als Objekte exportieren
        1. Out-GridView: Objekte im Spreadsheet anzeigen
        2. Export-Csv: Export an Microsoft Excel und andere Programme
          1. Kulturspezifische CSV-Dateien generieren
          2. Out-ExcelReport: Ergebnisse in Microsoft Excel anzeigen
        3. Ergebnisse als XML serialisieren
          1. Objekte »speichern«
          2. Objekte »dreidimensional« speichern
          3. Objektdaten als reines XML exportieren
      3. HTML-Reports erstellen
        1. Objekteigenschaften in HTML-Spalten umwandeln
        2. HTML im Webbrowser anzeigen
        3. HTML-Reports ansprechend und farbig gestalten
        4. Mehrere HTML-Tabellen kombinieren
      4. Testen Sie Ihr Wissen!
      5. Zusammenfassung
    3. 7. Operatoren
      1. Operatoren – kurzer Überblick
        1. Wie Operatornamen aufgebaut sind
        2. Unäre Operatoren
      2. Der Format-Operator -f
        1. Bündige Spalten herstellen
        2. Zahlen formatieren
        3. Datums- und Zeitangaben formatieren
      3. Vergleichsoperatoren
        1. Unterscheidung zwischen Groß- und Kleinschreibung
        2. Unterschiedliche Datentypen vergleichen
          1. Der Datentyp des ersten Werts zählt
          2. Automatisches Widening
        3. Vergleiche umkehren
        4. Vergleiche kombinieren
        5. Vergleiche auf Arrays anwenden
      4. Zuweisungsoperatoren
        1. Mehreren Variablen unterschiedliche Werte zuweisen
        2. Variableninhalte ändern
      5. Textoperatoren und Textmanipulationen
        1. Texte splitten und zusammenfügen
          1. Nach verschiedenen Zeichen splitten
          2. Splitten ohne Trennzeichen(verlust): Lookbehind und Lookaround
        2. Informationen in Texten finden
          1. Nach verschiedenen Begriffen gleichzeitig suchen
          2. Unterausdrücke verwenden
          3. Längste oder kürzeste Fassung?
          4. Mehrere Treffer finden
          5. Informationen aus dem Internet parsen und verwerten
          6. Multiline-Modus und Groß-/Kleinschreibung
        3. Textstellen ersetzen
          1. Muster ersetzen
          2. Bezug auf den Originaltext nehmen
          3. Delegatfunktionen verwenden
          4. Rückverweise im Muster verwenden
        4. Muster mit regulären Ausdrücken beschreiben
          1. Quantifizierer
          2. Anker
      6. Testen Sie Ihr Wissen!
      7. Zusammenfassung
    4. 8. Einfache Funktionen
      1. Alles Wichtige: Ein Überblick
        1. Warum Funktionen?
        2. Grundsätzliches Handwerkszeug
        3. Eigene Funktionen herstellen
        4. Funktionen mit Parametern ausstatten
        5. Funktionen überall verfügbar machen
        6. Hilfe – Bedienungsanleitung hinzufügen
        7. Kurz zusammengefasst...
      2. Parameter und Eingaben für Funktionen
        1. Parameter definieren
        2. Unbenannte Argumente
        3. Benannte Parameter
        4. Positionale Parameter
          1. Positionen selbst zuweisen
      3. Switch-Parameter
      4. Optionale Parameter
      5. Zwingend erforderliche Parameter
      6. Streng typisierte Parameter und Datentypen
      7. Mehrere Argumente für einen Parameter
      8. Rückgabewerte festlegen
        1. Ein Rückgabewert oder mehrere?
        2. Return-Anweisung
        3. Unerwünschte Rückgabewerte unterdrücken
        4. Auf die Rückgabewerte zugreifen
      9. Statusmeldungen ausgeben
        1. Festlegen, welche Meldungen sichtbar sind
        2. Farben der PowerShell-Meldungen festlegen
      10. Zusammenfassung
    5. 9. Fehlerhandling und Debugging
      1. Syntaxfehler erkennen und beheben
        1. Folgefehler und der Blick auf das Wesentliche
        2. Formale Regeln missachtet
      2. Typische Logikfehler aufspüren und entschärfen
        1. Falsche Verwendung von Operatoren
        2. Tippfehler ändern den Code
        3. Nicht initialisierte Variable
        4. Versehentliche Verwendung von Arrays
        5. Fehlendes Verständnis für Objektreferenzen
        6. Falsche Verwendung von Klammern
        7. Falsche Zuordnung von Skriptblöcken
      3. Mit dem Debugger Logikfehler nachvollziehen
        1. Haltepunkte setzen und Code schrittweise ausführen
        2. Codeausführung fortsetzen
        3. Intelligente Haltepunkte setzen
          1. Anhalten, wenn Variablen sich ändern
        4. Anhalten, wenn Cmdlets oder Funktionen aufgerufen werden
        5. Anhalten, wenn Variablen bestimmte Werte enthalten
        6. Debugging-Meldungen ausgeben
        7. Tracing: Ausgeführte Anweisungen anzeigen lassen
      4. Laufzeitfehler abfangen
        1. Spezialfall: Terminierende Fehler
        2. Fehler ereignisgesteuert mit try...catch abfangen
        3. Globaler Fehlerhandler: Trap
      5. ErrorRecords und Exceptions – Details zum Fehler
        1. Exception-Typen kennenlernen
        2. Spezifische Fehlerhandler einsetzen
      6. Aussagekräftige Fehlermeldungen generieren
      7. Eigene Fehler auslösen
      8. Testen Sie Ihr Wissen!
      9. Zusammenfassung
  4. III. Low-Level-Zugang
    1. 10. Mit Objekten arbeiten
      1. Einführung: Objekte und Typen
        1. Eigenschaften...
        2. ... und Methoden
        3. Alle Eigenschaften und Methoden anzeigen
        4. Hilfe zu Objekten und ihren Membern
        5. Ergebnisse eines Befehls untersuchen
        6. Achtung Falle: Objekte und Arrays
        7. Primitive Datentypen
      2. Objekteigenschaften lesen
        1. Verschachtelte Objekteigenschaften
      3. Objekteigenschaften ändern
        1. Eigenschaften in verschachtelten Objekten
        2. Änderungen erfordern Write-Back
          1. Geänderte WMI-Informationen zurückschreiben
          2. Geänderte Benutzerdaten zurückschreiben
      4. Objektmethoden aufrufen
        1. Eine Methode mit mehreren Signaturen
          1. Trim kann mehr als Leerzeichen entfernen
          2. In der Konsole auf einen Tastendruck warten
      5. Testen Sie Ihr Wissen!
      6. Zusammenfassung
    2. 11. Wie PowerShell Objekte erweitert
      1. PowerShell-Objekte verstehen
        1. Erweiterte PowerShell-Objekte
      2. AliasProperty: Eigenschaften umbenennen
      3. NoteProperty: Taggen von Objekten
      4. ScriptProperty: »Berechnete« Eigenschaften
        1. Lesbare Eigenschaften
        2. Lesbare und schreibbare Eigenschaften
      5. ScriptMethod und ParameterizedProperty
      6. Membertypen für den internen Gebrauch
        1. PropertySet: Gruppen von Eigenschaften
        2. MemberSet: Wie soll PowerShell das Objekt behandeln?
        3. CodeProperty: Statische Methoden aufrufen
        4. CodeMethod: Abkürzung für statische Methoden
      7. Objekte permanent erweitern
        1. Vorlagen für Typ-Erweiterungsdateien
          1. AliasProperty
          2. NoteProperty
          3. ScriptProperty (nur lesbar):
          4. ScriptProperty (lesbar und schreibbar):
          5. ScriptMethod
          6. CodeProperty
          7. CodeMethod
          8. PropertySet
          9. MemberSet
      8. Testen Sie Ihr Wissen!
      9. Zusammenfassung
    3. 12. Datentypen umwandeln
      1. Den Typ eines Objekts bestimmen
      2. Objekte in andere Typen umwandeln
        1. Explizite Typumwandlung
          1. Numerische Umwandlungen
          2. Textumwandlungen
          3. Umwandlungen in Cmdlets
        2. Nützliche Typen finden
        3. Implizite Umwandlungen
          1. Typisierte Variablen
          2. Typisierte Parameter
          3. Typisierte Eigenschaften und Argumente
          4. Vergleichsoperationen
      3. Daten überprüfen durch Testumwandlung
        1. Prüffunktionen entwickeln
        2. Typkonvertierungen und Landessitten
        3. Kombinierte Prüfungen
      4. Testen Sie Ihr Wissen!
      5. Zusammenfassung
    4. 13. Neue Objekte anlegen
      1. Neue Objekte durch Umwandlung erstellen
        1. Datumsoperationen
        2. Direktzugriff auf WMI-Objekte
        3. Direktzugriff auf Benutzerkonten
        4. Multiple Treffer mit regulären Ausdrücken
        5. Ein besseres Array durch Typumwandlung
      2. Neue .NET-Objekte mit New-Object
        1. Webseiteninhalte abrufen
        2. Mit XML arbeiten
          1. XML-Objekte erzeugen
          2. XML-Daten aus dem Internet laden
          3. Webdienste verwenden
        3. Konstruktoren verwenden
      3. Neue Objekte mit Konstruktoren erstellen
      4. Neue COM-Objekte herstellen
        1. Sprachausgabe
        2. Weitere Beispiele für häufig genutzte COM-Objekte
          1. Zugriff auf Internet Explorer
          2. Office-Automatisierung
          3. Zugriff auf Datenbanken
          4. Automatische Updates
          5. Dialogfelder öffnen
          6. Verknüpfungen anlegen und ändern
          7. Netzwerkmanagement
        3. Welche COM-Objekte gibt es sonst noch?
      5. Zusammenfassung
    5. 14. Typen verwenden
      1. Typen enthalten weitere Befehle
        1. Objekte und Typen – wo liegen die Unterschiede?
        2. Eigenschaften und Methoden eines Typs auflisten
        3. Statische und dynamische Member
      2. Häufig eingesetzte nützliche Typen
        1. Mathematische Funktionen verwenden
        2. Zahlenformate konvertieren
        3. DNS-Auflösung
        4. Umgebungsvariablen
        5. Pfade zu Systemordnern finden
        6. Konsoleneinstellungen
      3. Verfügbare Typen suchen und finden
        1. Type Accelerators untersuchen
        2. Bestehende Objekttypen erforschen
        3. In .NET Framework suchen
        4. Typen nach Stichwort suchen
        5. Typen mit bestimmten Befehlen finden
      4. Testen Sie Ihr Wissen!
      5. Zusammenfassung
    6. 15. Typen nachladen und .NET-Code kompilieren
      1. Systemassemblys nachladen
        1. HTML-Encoding und -Decoding
        2. Visual Basic-Befehle in PowerShell
        3. Bilderformate konvertieren
        4. Dialogfelder, WPF und der STA-Modus
      2. Neue Typen mit Membern definieren
      3. Vollkommen neue Typen definieren
        1. Demotyp mit statischer und dynamischer Methode
        2. Eigene Auflistungen für IntelliSense-Unterstützung
      4. Neue Typen aus DLL-Dateien laden
      5. Zusammenfassung
  5. IV. PowerShell-Entwickler
    1. 16. Pipelinefähige Funktionen
      1. Pipelinefähige Funktionen erstellen
      2. Parameter an Pipelineeingaben binden
        1. Alte Dateien finden
        2. Unterschiedliche Parameter über die Pipeline ansprechen
      3. Mehrere Parameter gleichzeitig empfangen
        1. CSV-Dateien direkt an Funktionen übergeben
        2. Aliasnamen für Parameter
          1. Die Grundfunktion: Pfadnamen zerlegen
          2. Pfadnamen über Pipeline empfangen
          3. Kompatibilität zu anderen Cmdlets herstellen
          4. Best Practice: Filterparameter hinzufügen
          5. Letzter Schliff: Unzulänglichkeiten beseitigen
            1. Text in Kleinbuchstaben verwandeln
            2. Providerspezifische Laufwerke
            3. Nicht existierende Pfade
      4. Alle Pipelineergebnisse auf einmal verarbeiten
        1. Pipelineergebnisse sammeln
        2. Fallstricke beim Einsatz von $input
      5. Zusammenfassung
    2. 17. Objekte als Rückgabewerte
      1. Vollwertige Objekte zurückliefern
        1. Robust: Leere neue Objekte mit Select-Object
        2. Schnell: Vorinitialisierte Objekte
        3. Langwierig: Member mit Add-Member hinzufügen
        4. Neu: Objekte mit JSON anlegen
      2. ETS-Formatierung festlegen
      3. Zusammenfassung
    3. 18. Fortgeschrittene Parameter
      1. Unterstützung für IntelliSense
        1. Parameter mit Vorgabewerten ausrüsten
        2. Parameter mit Enumerationen typisieren
        3. Dynamische Vorschlagslisten
        4. Unterstützung für IntelliSense bei Rückgabewerten
        5. Kompatibilität zu älteren PowerShell-Versionen
      2. Mehrere Parametersets definieren
        1. Sich gegenseitig ausschließende Parameter
        2. Standard-Parameterset festlegen
      3. Allgemeine Parameter aktivieren
        1. Parameter -Verbose und -WarningAction
        2. Parameter -ErrorAction und Fehlerhandling
        3. Performance-Optimierung
      4. Simulationsmodus (-WhatIf) und Sicherheitsabfrage (-Confirm) implementieren
        1. Festlegen, welche Codeteile übersprungen werden sollen
        2. Weiterleitung verhindern
        3. Praxisbeispiel: Automatische Auslagerungsdateien aktivieren
        4. Gefährlichkeit einer Funktion festlegen
      5. Dynamische Parameter einsetzen
        1. Dynamische Parameter in Cmdlets
        2. Dynamische Parameter selbst definieren
        3. Objektgenerator mit dynamischen Parametern
        4. Dynamische Parameter mit dynamischen ValidateSets
      6. Argumente »by Reference« übergeben
      7. Splatting: Parameter weitergeben
        1. Splatting im Alltag einsetzen
        2. Übergebene Parameter als Hashtabelle empfangen
        3. Mit Splatting Parameter weiterreichen
      8. Zusammenfassung
    4. 19. Proxyfunktionen verstehen und einsetzen
      1. Eine Proxyfunktion erstellen
        1. Proxyfunktion automatisch erzeugen
        2. Bestehende Cmdlets erweitern
      2. Automatische Protokollfunktion
      3. Get-ChildItem mit neuen Parametern
        1. Proxyfunktion anlegen
        2. Logik implementieren
          1. Nur Dateien oder nur Ordner anzeigen
          2. Dateialter filtern
          3. Mindest- und Maximalgröße
          4. Dateialter filtern
          5. Sortierung integrieren
      4. Projekt: Start-Transcript für PowerShell ISE
      5. Proxyfunktionen für Remoting
        1. Eine Remotesitzung erstellen
        2. Einen Remotebefehl in lokale Sitzung importieren
      6. Zusammenfassung
    5. 20. Eigene Module erstellen
      1. Skript in Modul verwandeln
        1. Neues Modul anlegen
        2. Was beim Modulimport geschieht...
        3. Allgemeiner Modulaufbau
      2. Manifestdatei für ein Modul
        1. Neue Manifestdatei anlegen
        2. Wirkung einer Manifestdatei
      3. ETS-Anweisungen zu Modul hinzufügen
        1. Objekte mit eindeutigem Typnamen versehen
        2. Aufbau von FormatData-Definitionen
        3. Formatdefinition in Modul integrieren
      4. Volldynamische Skriptmodule
        1. Universeller Modul-Loader als .psm1-Datei
        2. Modulkopierfunktion
        3. Universelles Manifest als .psd1-Datei
        4. Einsatzbereites Universalmodul herstellen
        5. Weitere neue Module herstellen
      5. Module rückstandslos entfernen
      6. Zusammenfassung
    6. 21. Gültigkeitsbereiche
      1. Skripts im Aufruferkontext
        1. Dotsourcing verstehen
        2. Unterschied zwischen Lesen und Schreiben
      2. Globale Variablen verwenden
        1. Globale Variablen
        2. Skriptglobale Variablen
        3. Aufruftyp eines Skripts testen
        4. Aufpassen bei Objekten und Referenzen
      3. Auf beliebige Gültigkeitsbereiche zugreifen
      4. Gültigkeitsbereiche in Modulen
        1. Auf den Aufruferkontext zugreifen
        2. Auf den Modulkontext zugreifen
      5. Zusammenfassung
    7. 22. Sicherheit und Signaturen
      1. Ein Zertifikat auswählen
        1. Installiertes Zertifikat auswählen
        2. PFX-Dateien für die Signierung laden
        3. Selbstsigniertes Zertifikat herstellen
          1. makecert.exe nutzen
          2. PowerShell-Funktion nutzen
      2. PowerShell-Skripts signieren
        1. Mehrere Skripts und ganze Ordnerstrukturen signieren
        2. Signaturen mit einem Zeitstempel versehen
      3. Signaturen überprüfen
      4. Zusammenfassung
  6. V. Spezielle Techniken
    1. 23. Windows PowerShell-Remoting
      1. Klassisches Remoting
        1. Remotefähige Befehle finden
        2. Klassisches Remoting einsetzen
        3. Troubleshooting für klassisches Remoting
          1. Ist der Computername bekannt?
          2. Initialer Port-Scan
        4. WMI-Remoting einrichten
        5. Remote-Registrierungszugriff erlauben
      2. Universelles PowerShell-Remoting
        1. PowerShell-Remoting einschalten
          1. Zusätzliche Einstellungen für Cross-Domain und Peer-to-Peer
          2. PowerShell-Remoting abschalten
      3. Enter-PSSession: Interaktive Remotekonsole
        1. Enter-PSSession führt nur interaktive Eingaben remote aus
        2. Kontrolle: Wer besucht meinen Computer?
        3. Remoting-Unterstützung im ISE-Editor
      4. Invoke-Command: Remoteausführung von PowerShell-Code
        1. Lokale Variablen und Abhängigkeiten
        2. Double-Hop und CredSSP: Anmeldeinfos weiterreichen
      5. New-PSSession: Dauerhafte Remotesitzungen
        1. Eigene Sitzungen anlegen
        2. Sitzungen zu mehreren Computern: Fan-Out
        3. Sitzungen vorübergehend trennen
        4. Getrennte Sitzungen verwenden
        5. Import-PSSession: Implizites Remoting
        6. Remotesitzungen als Modul exportieren
      6. Sitzungskonfigurationen anlegen und verwalten
        1. Neue Konfiguration anlegen
        2. Berechtigungen auf Sitzungskonfigurationen setzen
      7. Datentransfer und Performance-Optimierung
        1. Serialisierung
        2. Optimierungsansätze
      8. WSMan: Ports, Timeouts und andere Remoting-Einstellungen
        1. Clientseitige Optionen
        2. Serverseitige Optionen
      9. Fehler finden und beheben
        1. RPC-Server nicht verfügbar
        2. Zugriff verweigert
        3. Kerberos-Fehlermeldung
        4. Öffentliche Netzwerke entdeckt
        5. Andere Fehler
      10. Zusammenfassung
    2. 24. Hintergrundjobs
      1. Hintergrundjobs verwenden
        1. Hintergrundjob anlegen
        2. Laufende Hintergrundjobs kontrollieren
        3. Ergebnisse eines Hintergrundjobs abrufen
        4. Hintergrundjobs abschließen
        5. Parallelverarbeitung für mehr Geschwindigkeit
        6. Der Parameter -AsJob
        7. Hintergrundjobs auf Remotecomputern starten
        8. Weitere Remotejobverfahren
        9. Was Sie bei Hintergrundjobs bedenken sollten...
      2. Lightweight-Threads für Hintergrundjobs
        1. Einen separaten Thread erzeugen
        2. Hintergrundüberwachungen einrichten
      3. InProcess-Jobs einsetzen
      4. Testen Sie Ihr Wissen!
      5. Zusammenfassung
    3. 25. Ereignisverarbeitung
      1. Ereignisse verwenden
        1. Ein Ereignis überwachen
        2. Ereignisüberwachung wieder abschalten
        3. Auf Events warten
      2. Hintergrundjobs überwachen
        1. Manuelle Überwachung
        2. Automatische Überwachung
      3. Ordner überwachen
      4. Aufgaben regelmäßig durchführen
      5. WMI-Ereignisse empfangen
        1. Details zum Event erfahren
        2. Systemänderungen erkennen
      6. Eigene Ereignisse auslösen
        1. Automatische Variablenüberwachung einrichten
      7. Zusammenfassung
    4. 26. Workflows
      1. Parallelverarbeitung mit Workflows
        1. Das Schlüsselwort »parallel«
        2. Die foreach-Schleife im Parallelmodus
      2. Flexibles Remoting
      3. Persistenz
        1. Workflows unterbrechen sich selbst
        2. Persistierte Workflows
      4. Einschränkungen in Workflows
        1. Verbotene Sprachelemente
        2. Nicht unterstützte Cmdlets
      5. Zusammenfassung
    5. 27. Benutzeroberflächen gestalten
      1. Windows Presentation Foundation
        1. Eigene Fenster öffnen
        2. Spezialfenster ohne Rahmen
        3. Transparenz und Bildschirmsperre
        4. Warum WPF so relativ einfach ist
      2. Ereignishandler
      3. Elemente im Fenster anordnen
        1. StackPanels
        2. Grids
        3. DockPanels
      4. Zusammenfassung
    6. 28. Erweiterungen für den ISE-Editor
      1. Das ISE-Objektmodell
        1. $psISE – der Zugang zum Objektmodell
      2. ISE-Optionen automatisiert setzen
        1. Standardkonfigurationen und Profilskripts
        2. Set-TokenHighlight: Vorübergehende Hervorhebungen
      3. PowerShell-Parser und abstrakte Syntaxstruktur
        1. Skript in Token verwandeln
        2. Tools, die auf dem Parser aufsetzen
        3. Variablendokumentation
        4. Kommentare entfernen
        5. Variablen umbenennen
        6. Aliase auflösen
      4. Add-Ons-Menü verwenden
        1. Komplexe Menüs erstellen
      5. Zusammenfassung
  7. A. Über den Autor
  8. Stichwortverzeichnis
  9. Copyright