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

Windows PowerShell 2.0 - Crashkurs

Book Description

In diesem Crashkurs lesen Sie alles, was Sie für einen soliden Einstieg in Windows Power Shell 2.0 benötigen. Vom Umgang mit Dateien und Verzeichnissen über den Zugriff auf die Registry, über das Erstellen kleiner und größerer Skripts, über ADSI (Active Directory Services Interface) bis hin zu WMI werden alle wichtigen Themen praxisorientiert behandelt. Viele kleine Beispiele sorgen dafür, dass Sie die Theorie gleich in die Praxis umsetzen können. Windows Power Shell ist eine Chance, Systemaufgaben deutlich produktiver erledigen zu können als dies in der Vergangenheit möglich war und eine Herausforderung zugleich, da sie einige neue und unter Umständen ungewohnte Konzepte mit sich bringt. Gegenüber der Version 1.0 handelt es sich um ein komplett neues Buch, in dem nach den obligatorischen Grundlagenkapiteln vor allem die Praxis anhand von Beispielen im Mittelpunkt steht. Das Buch behandelt alle wichtigen Themen inkl. Windows 7 und Windows Server 2008 R2.

Table of Contents

  1. Windows PowerShell 2.0 – Crashkurs
  2. A Note Regarding Supplemental Files
  3. Einleitung
    1. Was lesen Sie in diesem Buch?
    2. Wo gibt es die Beispiele?
    3. Download, Installation und Systemvoraussetzungen
      1. KB968929 und KB968930
    4. Die PowerShell lernen
    5. Kontakt zum Autor
    6. Danksagungen
  4. 1. Der erste Überblick über die (neue) PowerShell
    1. Am Anfang war das Problem
    2. Die PowerShell in zehn Minuten
    3. Shell -ne Muschel
      1. In Zukunft zurück zum Keyboard?
    4. Cmdlets statt Befehle
      1. Cmdlets und wie man mehr über sie erfährt
    5. Alles dreht sich um Objekte
      1. Objekte statt Text – ein kleiner, aber bedeutender Unterschied
      2. Objekte versus Text in der Praxis
    6. Die Rolle der Objektpipeline
    7. Über Umgang mit Objekten
      1. Objekte besitzen Member
      2. Member werden über einen Punkt angesprochen
      3. Die Memberliste ist nicht statisch
    8. Objekte statt Text (Teil 2)
      1. Ein weiteres Beispiel aus der Praxis – Platz schaffen auf der Festplatte
    9. PowerShell 2.0
      1. Die wichtigsten Neuerungen der Version 2.0
        1. Active Directory?
      2. Die PowerShell als die etwas modernere Shell
    10. Die PowerShell für .NET-Entwickler
      1. Die PowerShell aus Entwicklersicht
    11. Die PowerShell für andere Plattformen?
    12. Wo gibt es mehr? (PowerShell-Know-how)
    13. Zusammenfassung
  5. 2. PowerShell-Formalitäten
    1. Installation und Start
      1. Das Windows Management Framework
      2. Downloadformalitäten
      3. Das Basisverzeichnis der PowerShell 2.0
      4. Die PowerShell starten
      5. Die PowerShell beenden
      6. Kompatibilität zur Version 1.0
        1. Von Version 2.0 zurück zur Version 1.0
    2. Die Rolle der Profile-Dateien
      1. Die Variable $Profile
      2. Die Rolle der Ausführungsrichtlinie
      3. Das Laden der Profile-Datei(en) verhindern
      4. Eine Profile-Datei anlegen
      5. Ein Beispiel für eine Profile-Datei
      6. Das Anlegen einer Protokolldatei (Start-Transcript)
    3. Die Eingabezeile der Eingabeaufforderung
      1. Die Groß- und Kleinschreibung spielt keine Rolle
      2. Die Eingabe ist auch über mehrere Zeilen möglich
      3. Umbruch mit Zeilenfortführungszeichen
      4. Der Befehlszeileneditor
      5. Kopieren und Einfügen
      6. Eingegebene Befehle erneut abrufen
      7. Autovervollständigung mit
      8. Sonderzeichen und ihre Bedeutung
      9. Escape-Zeichen
        1. Variablen in einer Zeichenkette nicht austauschen
      10. Zeilenumbruch & Co
      11. Die Eingabe von Zahlen
    4. Individuelle Einstellungen vornehmen
      1. Die Vorder- und Hintergrundfarbe des Host-Fensters
      2. Die Titelleiste des Fensters einstellen
      3. Die Größe des Eingabeaufforderungsfensters verändern
      4. Vorder- und Hintergrundfarbe bei Meldungstypen einstellen
      5. Den Eingabeprompt gestalten
        1. Die Umgebungsvariable Path erweitern
    5. Hilfe
      1. Die Hilfetexte individuell durchsuchen
      2. Hilfethemen drucken
    6. Die Integrated Scripting Environment (ISE)
      1. Syntaxeinfärbung
      2. Integrierter Debugger
      3. Ein- und Ausgabebereich
      4. Die PowerShell ISE ist erweiterbar
    7. Zusammenfassung
  6. 3. Cmdlets
    1. Cmdlets kennen lernen
      1. Welche Cmdlets sind an Bord?
      2. Alles über ein Cmdlet erfahren
      3. Cmdlets nach Snap-Ins gruppieren
      4. Die Rolle der Aliase
      5. Einen neuen Alias anlegen
      6. Kleine Nachteile von Aliasen
      7. Aliase exportieren und importieren
      8. Aliase wieder entfernen
    2. Cmdlets und ihre Parameter
      1. Die Common Parameters
      2. Mehr über einen Parameter erfahren
    3. Die wichtigsten Cmdlets
      1. Das Get-Date-Cmdlet (kein Alias)
        1. Über den Umgang mit Datum und Zeit
        2. Neu: Das New-TimeSpan-Cmdlet
      2. Das Get-Command-Cmdlet (Alias Gcm)
      3. Befehle in einer Zeichenkette
      4. Das Get-Help-Cmdlet (kein Alias)
      5. Die Syntaxbeschreibung zu einem Cmdlet abrufen
      6. Parameterhilfe abrufen
      7. Allgemeine Hilfethemen abrufen
      8. Onlinehilfe abrufen
      9. Das Get-Member-Cmdlet (Alias Gm)
      10. Das Select-Object-Cmdlet (Alias Select)
      11. Die Anzahl der Pipeline-Elemente eingrenzen
      12. Das Where-Object-Cmdlet (Alias ?)
      13. Das Group-Object-Cmdlet (Alias Group)
      14. Collection-Properties erweitern mit dem ExpandProperty-Parameter
      15. Gruppieren mit berechneten Spalten
      16. Das Sort-Object-Cmdlet (Alias Sort)
      17. Sortieren mit berechneten Spalten
      18. Das Get-Unique-Cmdlet (Alias Gu)
      19. Das ForEach-Object-Cmdlet (Alias %)
      20. Das Out-String-Cmdlet (kein Alias)
      21. Text als Stream
      22. Das Measure-Object-Cmdlet (Alias Measure)
      23. Den Pipeline-Inhalt in eine Datei umleiten (Out-File und Tee-Object)
    4. Cmdlets-Fehler
    5. Zusammenfassung
  7. 4. Ad-hoc-Abfragen lokal und im Netzwerk
    1. Lokal und im Netzwerk
    2. Jobs
    3. Umgang mit Prozessen
      1. Laufende Prozesse holen
        1. Den Output formatieren
        2. Auf einen gestarteten Prozess warten
      2. Prozesse beenden
      3. Prozesse starten
      4. Prozesse termingesteuert starten
      5. Die Besitzer eines Prozesses auflisten
    4. Der Umgang mit Diensten
      1. Dienste auflisten
      2. Weitere Details zu einem Dienst auflisten
      3. PowerShell oder Sc.exe?
        1. Auflisten aller abhängigen Dienste – der Umgang mit Collection-Membern
      4. Einen Dienst anhalten
      5. Einen Dienst beenden
      6. Einen Dienst fortsetzen
      7. Dienste anhand einer Liste prüfen
      8. Ein kurzer Ausflug in die Praxis
      9. Einzelne Eigenschaften eines Dienstes ändern
      10. Was genau liefert Get-Service?
      11. Die Zugriffsberechtigungen eines Dienstes in Erfahrung bringen
      12. Einen neuen Dienst einrichten
      13. Ein (kurzer) Blick hinter die Kulissen
      14. Einen Dienst entfernen
    5. Der Umgang mit dem Ereignisprotokoll
      1. Neuerungen bei Vista
      2. Ereignisprotokolleinträge anzeigen
      3. Einen Eintrag schreiben
      4. Das Löschen eines Ereignisprotokolls
      5. Das Get-WinEvent-Cmdlet als moderne Alternative
    6. Der Zugriff auf die Registry
      1. Der Registry-Provider der PowerShell
        1. Der Registry-Provider und seine Laufwerke
      2. Schlüssel auflisten
      3. Die Einträge eines Schlüssels auflisten
      4. Einen neuen Schlüssel anlegen
      5. Einen Schlüssel entfernen
      6. Einen neuen Eintrag anlegen
        1. Einen Eintrag vom Typ REG_DWORD anlegen
        2. Feststellen, ob die Benutzerkontensteuerung (UAC) aktiv ist
        3. Feststellen, ob die PowerShell installiert ist
        4. Einen Eintrag vom Typ REG_MULTI_SZ anlegen
        5. Einen Eintrag vom Typ REG_EXPAND_SZ anlegen
        6. Einen Binäreintrag lesen und schreiben
      7. Einen Schlüssel verschieben
      8. Den Standardwert eines Schlüssels ansprechen
      9. Aliase statt Cmdlets
      10. Feststellen, ob ein Schlüssel existiert
      11. Mit dem Rückgabewert eines Get-Item arbeiten (das RegistryKey-Objekt)
      12. Suchen in der Registry
      13. Die Suche mit [Microsoft.Win32]::RegistryKey
      14. Umgang mit Registry-Berechtigungen
      15. Remotezugriff auf die Registry
    7. Die Ergebnisse einer Abfrage anzeigen
      1. Das Format-Table-Cmdlet
      2. Gruppieren der Ausgabe
      3. Eigene Spalten definieren
      4. Das Format-List-Cmdlet
      5. Einfache Ausgabe mit Format-Wide
      6. Fensterausgaben mit Out-GridView
    8. Abfrageergebnisse exportieren
      1. Export in das Textformat
      2. Export in das CSV-Format
      3. Export in das HTML-Format
      4. Export in das XML-Format
      5. Abfrageergebnisse visualisieren
    9. Zusammenfassung
  8. 5. Umgang mit Dateien, Verzeichnissen und Laufwerken
    1. Alles ist ein Item (oder die Rolle der Provider)
      1. Provider und Laufwerke auflisten
    2. Allgemeines über die Item-Cmdlets
      1. Die Rolle der Item-Aliase
      2. Die Parameter WhatIf und Confirm
        1. Der Parameter Force
        2. Die Rolle des LiteralPath-Parameter
      3. Transaktionen
    3. Der Umgang mit Laufwerken
      1. Laufwerksabfragen per WMI
      2. Laufwerksabfragen per DriveInfo
      3. Laufwerksabfragen per FileSystemObject
        1. Das aktuelle Verzeichnis
        2. Das aktuelle Verzeichnis sichern und wiederherstellen
        3. UNC-Pfade
      4. Netzwerklaufwerke auflisten
      5. Neue Laufwerke anlegen
    4. Der Umgang mit Dateien
      1. Operationen mit Platzhaltern
    5. Der Umgang mit Verzeichnissen
      1. Zwischen Dateien und Verzeichnissen unterscheiden
      2. Die Größe aller Dateien in einem Unterverzeichnis feststellen
        1. Die Anzahl der Dateien in allen Unterverzeichnissen feststellen
        2. Zugriffsberechtigungen berücksichtigen
    6. Umgang mit Pfaden
      1. Feststellen, ob ein Pfad existiert
      2. Verknüpfen von Verzeichnis- und Dateinamen zu einem Pfad
      3. Heraustrennen von Verzeichnis- und Dateinamen aus einem Pfad
    7. Standardoperationen mit Dateien und Verzeichnissen
      1. Dateien anlegen
        1. Mehrere Dateien auf einmal anlegen
      2. Verzeichnisse anlegen
      3. Ein Element in einem Container ansprechen mit Get-Item (Alias gi)
      4. Den Inhalt eines Containers auflisten mit Get-ChildItem (Aliase dir, gci und ls)
        1. Den Inhalt eines Containers gruppieren
      5. Dateien und Verzeichnisse kopieren mit Copy-Item (Alias cp)
        1. Anzahl der kopierten Dateien zählen
        2. Das Zielverzeichnis vom Dateinamen abhängig machen
        3. Kopieren im Netzwerk per BITS
        4. Kurzer Ausflug zu Robocopy
      6. Verschieben mit Move-Item (Alias mv)
      7. Umbenennen mit Rename-Item (Alias ren)
        1. Umbenennen mit System
        2. Umbenennen mit Varianten
      8. Löschen mit Remove-Item (Alias rm)
        1. Wann erfolgt eine Bestätigung?
        2. Die Rolle der ConfirmPreference-Variablen
      9. Dateien suchen
        1. Rekursives Suchen als Job
        2. Suchen über mehrere Laufwerke
        3. Der Ersatz für dir /s
        4. Die Anzahl der gefundenen Dateien erhalten (oder: der OutVariable-Parameter)
        5. Suche mit Fortschrittsanzeige (das Write-Progress-Cmdlet)
        6. Mitprotokollieren der Suche
      10. Dateien aufräumen mit der PowerShell
    8. Der Umgang mit (Zip-)Archiven
    9. Der Umgang mit Dateiattributen
      1. Dateiattribute zuweisen
        1. Konstanten einer Konstantenliste sind ganze Zahlen
        2. Einzelne Dateiattribute gezielt setzen/zurücksetzen
    10. Der Umgang mit Datei- und Verzeichnisberechtigungen
      1. Allgemeines zum Thema Zugriffsberechtigungen
        1. Die Rolle der Vererbung
      2. Zugriffsberechtigungen setzen
      3. Die Cmdlets Get-Acl und Set-Acl (keine Aliase)
      4. Eine übersichtlichere Form von Get-Acl
        1. Das Set-Acl-Cmdlet
        2. Berechtigungen etwas komfortabler setzen
        3. Berechtigungen kopieren
      5. Den Besitzer eines Objekts abfragen und setzen
        1. Den Besitzer eines Objekts setzen
        2. Eine Frage der Privilegien
        3. Privilegien per WMI setzen
        4. Das Tool Takeown.exe
    11. Umgang mit Freigaben
      1. Freigaben auflisten
      2. Freigaben anlegen
      3. Zugriffsberechtigungen bei Freigaben
    12. Zusammenfassung
  9. 6. Umgang mit Text
    1. Zahlen und Datumsangaben formatieren
    2. Textdateien lesen und schreiben
      1. Lesen von Binärdateien
      2. Get-Content liest nicht nur Dateien
      3. Textdateien schreiben
      4. Dateien zusammenfügen mit Add-Content (Alias ac)
      5. Den Inhalt einer Datei löschen
    3. Umgang mit CSV-Daten
    4. Texte und Textdateien durchsuchen mit Select-String
      1. Das Select-String-Cmdlet im Detail
    5. Reguläre Ausdrücke in 10 Minuten
      1. Ein wenig Theorie
      2. Die Rolle der Zeichengruppen
      3. Die Rolle der Quantifizierer
      4. Reguläre Ausdrücke bei der PowerShell
      5. Das Select-String-Cmdlet
      6. Der Match-Operator
      7. Der Replace-Operator
      8. Der [Regex]-Type Accelerator
        1. Die IsMatch-Methode
        2. Die Match- und die Matches-Methode
        3. Regex-Optionen
      9. Weitere Beispiele aus der Praxis
        1. Windows-Umgebungsvariablen ersetzen
        2. Logdateien auswerten
        3. Dateiabfragen mit regulären Ausdrücken
        4. Effektives Ersetzen mit dem Replace-Operator
      10. E-Mail-Adressen ausfiltern
      11. Expresso hilft
    6. Die String-Operatoren Join und Split
    7. Die String-Klasse und ihre Member
    8. Umgang mit XML-Daten
      1. XML-Daten über den [Xml]-Type Accelerator einlesen
      2. XML-Daten aktualisieren
      3. Das ConvertTo-XML-Cmdlet
        1. Ereignisprotokoll-Einträge im XML-Format auswerten
      4. Die Cmdlets Export-Clixml und Import-Clixml
    9. Zusammenfassung
  10. 7. PowerShell-Skripts
    1. Was man für den Anfang wissen muss
      1. Skripts erstellen
      2. Sicherheitseinstellungen für die Skriptausführung
        1. Die Ausführungsrichtlinie als Gruppenrichtlinien-Template verteilen
    2. Skripts starten
      1. Skripts dot sourced starten
      2. Skripts zeitgesteuert starten
      3. Skripts mit einem anderen Benutzerkonto starten
    3. Kurze Einführung in PowerShell Script
      1. Kommentarzeilen
      2. Eingaben entgegennehmen
      3. Variablen
        1. Variablen und ihr Typ
        2. Einen Datentyp erzwingen (das Type Casting)
        3. Type Casting und Fehlerbehandlung
      4. Zeichenketten (Strings)
        1. Here-Zeichenfolge
        2. Variablen und ihr Gültigkeitsbereich (Scope)
        3. Fehler bei nicht deklarierten Variablen
      5. Arrays (Arrayvariablen)
        1. Feststellen, ob ein Wert in einem Array enthalten ist
        2. Ein Array mit einer festen Größe anlegen
      6. Hashtables
      7. Die Rolle des Befehlsblocks
      8. Entscheidungen mit dem if-Befehl
        1. Der else-Befehl für den Alternativzweig
        2. Eine Frage der Logik
        3. Mehrfachentscheidung mit dem elseif-Befehl
      9. Mehrfachentscheidungen über den switch-Befehl
        1. switch mit regulären Ausdrücken
      10. Schleifenbefehle
        1. Schleifen mit dem for-Befehl
        2. Andere Zählschritte
        3. Wiederholungen mit der while-Schleife
        4. Wiederholungen mit der do-Schleife
        5. Wiederholungen mit der foreach-Schleife
        6. Warum foreach auch bei leeren Variablen mindestens einmal durchlaufen wird
    4. Funktionen
      1. Funktionen ohne Parameter
      2. Funktionen mit Parametern
        1. Variante 1: Funktionsparameter folgen auf den Funktionsnamen
        2. Variante 2: Funktionsparameter mit dem param-Befehl definieren
      3. Mit dem Break-Befehl eine Funktion vorzeitig verlassen
        1. Mit dem return-Befehl einen Ausgangspunkt definieren
      4. Funktionen mit Pipeline-Parameter
      5. Ein Touch-Befehl als Beispiel für eine »richtige« Funktion
      6. Wie machen es die Profis?
    5. Zusammenfassung
  11. 8. PowerShell-Skripts für etwas Fortgeschrittene
    1. Skripts mit Argumenten
      1. Die Args-Variable
      2. Der param-Befehl für Skripts
      3. In ein Skript pipen
    2. Erweiterte Funktionen (Advanced Functions)
      1. Der Aufbau einer erweiterten Funktion
      2. Parameterattribute
        1. Parameter-Pipeline-Bindung über das parameter-Attribut festlegen
        2. Die Rolle des CmdletBinding-Attributs
      3. Implementieren einer Hilfe für eine Funktion
    3. Fehlerbehandlung
      1. Nicht terminierende und terminierende Fehler
      2. Fehlerbehandlung bei Cmdlets – der ErrorAction-Parameter
        1. Die Variable $ErrorActionPreference
      3. Die Basis für eine Fehlermeldung – das ErrorRecord-Objekt
        1. Mehr über einen Fehler erfahren – die $Error-Variable
        2. Die Rolle der Exception
        3. Feststellen, welcher Fehler aufgetreten ist
        4. Feststellen, in welcher Zeile der Fehler auftrat
        5. Ein ErrorRecord mit dem throw-Befehl erzeugen
        6. Der trap-Befehl fängt Fehler ab
      4. Die Fehlerbehandlung mit try und catch
        1. Finally – damit immer etwas passiert
      5. Allgemeines zur Fehlerbehandlung
        1. War der letzte Befehl ein Erfolg? Die Variable $?
        2. Der Parameter ErrorVariable
        3. Den letzten Fehlercode abfragen
        4. Fehlerausgaben umleiten
        5. Das PowerShell-Pedant zu ErrorLevel
        6. Den Umfang der Fehlermeldung steuern
        7. Den COM-Errorcode abfragen
        8. Die Farbe der Fehlermeldung in der PowerShell-Konsole ändern
    4. Skripts debuggen
      1. Variablenwerte betrachten
      2. Die Debugger-Cmdlets
      3. Alternativen zur ISE
    5. Zusammenfassung
  12. 9. Windows Management Instrumentation (WMI)
    1. WMI in zehn Minuten
      1. Die ersten Schritte mit WMI
      2. WMI-Klassen
      3. WMI-Instanzen
      4. Das ManagementObject-Objekt
      5. Die PowerShell-Unterstützung auf einen Blick
      6. Umstellen von WSH-Skripts
        1. Ein einfaches Beispiel für die Umsetzung eines WSH-Skripts
        2. Eine weitere WMI-Abfrage in VBScript
      7. Ein Blick hinter die Kulissen
    2. WMI-Abfragen mit Get-WmiObject
      1. Hardware- und Softwarekonfigurationsdaten abfragen
    3. WMI in der Praxis
      1. Daten über das Betriebssystem abfragen
      2. Daten über den Computer abfragen
      3. Daten über die Netzwerkadapter abfragen
        1. WLAN-Adapter zurücksetzen
      4. Eine Freigabe mit Berechtigungen anlegen
    4. WMI-Spezialitäten
      1. WMI im Netzwerk
        1. Wenn es Probleme gibt ...
        2. DCOM und dynamische Ports
      2. Konvertieren von WMI-Datumswerten
      3. WMI-Abfragen über Assoziationsklassen
      4. WMI-Abfragen über Referenzklassen
      5. WMI-Eigenschaften schreiben
      6. Auf WMI-Properties einzeln zugreifen
      7. Direkter Aufruf von WMI-Methoden mit Invoke-WmiMethod
      8. WMI-Instanzen entfernen über Remove-WmiObject
      9. Eine WMI-Instanz anlegen über Set-WmiInstance
      10. WMI-Abfragen als Job
      11. Umgang mit WMI-Berechtigungen
    5. Die WMI Type Accelerators
      1. [WMI]
      2. [WMIClass]
        1. Zugriff auf die Registry mit [WMIClass]
      3. [WMISearcher]
    6. Umgang mit WMI-Events
      1. Die Cmdlets für den Umgang mit Events
      2. Das Register-WmiEvent-Cmdlet
      3. Warten auf den Start eines Prozesses
        1. Das UnregisterEvent-Cmdlet
      4. Die Registry überwachen
      5. USB-Laufwerksüberwachung
    7. WMI über WS-Man
    8. WMI-Tools
      1. Wbemtest
      2. WMI-Explorer
    9. Zusammenfassung
  13. 10. Active Directory und Gruppenrichtlinien
    1. PowerShell und Active Directory
      1. Ein Hinweis zu den Beispielprogrammen
    2. Active Directory-Verwaltung per [ADSI] und [ADSISearcher]
      1. Die ersten Schritte mit [ADSI]
        1. Verzeichniselemente über ihre GUID ansprechen
      2. Anmelden an eine Domäne
      3. Die Rolle der Container
      4. Ein einzelnes Verzeichnisobjekt über seinen LDAP-Pfad ansprechen
      5. Ein Blick hinter die Kulissen – Adapted Views und die Wunder des Extended Type Systems
        1. Die Rolle von psbase
        2. Ein Hinweis zu den Fehlermeldungen
      6. Die DirectoryEntry-Klasse repräsentiert ein Element
      7. Zugriff auf ein einzelnes Attribut
      8. Zugriff auf einen Container – das DirectoryEntries-Objekt
        1. Einen Container per Find durchsuchen
      9. Umgang mit Benutzern
        1. Kurzer Exkurs zum Schema Editor
      10. Einfache Aufgaben in Active Directory mit [ADSI] erledigen
        1. Einen Benutzer anlegen
        2. Kleine Unstimmigkeiten gehören dazu
        3. Das Kennwort des Benutzers setzen
        4. Einen vorhandenen Benutzer modifizieren
        5. Einen Benutzer entfernen
        6. Einen Benutzer umbenennen
        7. Eine Gruppe anlegen
        8. Einen Benutzer zu einer Gruppe hinzufügen
        9. Einen Benutzer aus einer Gruppe entfernen
        10. Einen Benutzer verschieben
      11. Gruppen rekursiv durchlaufen
        1. Eine OU anlegen
      12. Die Suche in einer Domäne (Suchen nach Benutzerkonten)
        1. Die Suchergebnisse als DirectoryEntry-Objekte weiterverarbeiten
        2. Suche nach bestimmten Properties (z.B. CanonicalName)
      13. LDAP in zehn Minuten
        1. ADFind, DsQuery & Co als Alternative
    3. Active Directory-Verwaltung mit den Cmdlets von Quest (Management Shell for AD)
      1. Installation
      2. Die Rolle des Identity-Parameters
      3. Die ersten Schritte
      4. Anmelden an eine Domäne
      5. Einen Benutzer anlegen
      6. Attribute nachträglich ändern
        1. Attribute ansprechen, für die es keinen Parameter gibt
      7. Benutzer löschen
      8. Gruppen anlegen
      9. Benutzer zu Gruppen hinzufügen und entfernen
      10. Organisationseinheiten anlegen
      11. Die Mitglieder einer OU auflisten
      12. Operationen mit Computerkonten
      13. Die Quest-Cmdlets im Zusammenspiel mit PowerGUI
    4. Active Directory-Administration
      1. Wenn eine Anmeldung erforderlich ist – der DirectoryContext
      2. Den RootDSE ansprechen
      3. Alle Domänen in einem Forest auflisten
      4. Einen Forest ansprechen
      5. Die Domäne ansprechen
      6. Den Domänencontroller ansprechen
      7. Den globalen Katalog ansprechen
      8. Suchen im globalen Katalog
    5. Die Cmdlets aus dem ActiveDirectory-Modul
      1. Die Remote Server-Verwaltungstools für Windows 7
      2. Das ActiveDirectory-Modul im Rahmen einer Remote-Session nutzen
      3. Auflisten von Benutzern
      4. Anlegen eines neuen Benutzers
      5. Einen Benutzer ändern
    6. Umgang mit Gruppenrichtlinien
      1. Ein wenig Theorie
        1. Die Rolle der Links
      2. Die Berechtigungen
        1. Die Rolle der WMI-Filter
        2. Auflisten aller GPOs
        3. Auflisten aller verlinkten GPOs
        4. Anlegen eines neuen GPO
        5. Entfernen einer GPO
        6. Anlegen eines Links
        7. Entfernen eines Links
        8. Exportieren eines GPO
    7. Lokale Benutzerkonten verwalten
      1. Anlegen eines lokalen Benutzerkontos
      2. Entfernen eines lokalen Benutzerkontos
      3. WMI als Alternative
    8. Zusammenfassung
  14. 11. Remoting mit der PowerShell
    1. Grundlagen und Voraussetzungen
      1. Remoting-Konfiguration
        1. Einen Remotecomputer zur Liste der Trusted Hosts hinzufügen
      2. WS-Man in zehn Minuten
      3. Remoting-Troubleshooting-Tipps
        1. Läuft der WinRM-Dienst?
        2. Wurde Remoting auf dem Remotecomputer aktiviert?
        3. Ist der Remotecomputer in der Liste der Trusted Hosts enthalten?
        4. Weitere »Schnelltests«
        5. Anderen Anwendern Remotezugriffe erlauben
      4. Ein (letztes) Wort zu SSH
    2. Umgang mit Remotesessions
      1. Einrichten und Start einer neuen Session
      2. Eine Session importieren
      3. Eine Session exportieren
    3. Der WSMan-Provider der PowerShell
      1. Aufruf von WSMan-Webservicefunktionen über Invoke-WSManAction
      2. Cmdlets mit einem ComputerName-Parameter
    4. PowerShell-Remoting in der Praxis
      1. Das Invoke-Command-Cmdlet
        1. Ausführen eines Skriptblocks
        2. Ausführen eines Skripts
        3. Ausführen einer Exe-Datei
      2. Einrichten einer Session
    5. Zusammenfassung
  15. 12. Systemaufgaben mit der PowerShell lösen
    1. Befehlszeilentools aufrufen
    2. COM-Komponenten ansprechen
      1. Anlegen einer Verknüpfung
      2. MSI-Dateien durchsuchen (und eine kleine Typnachhilfe für die PowerShell)
    3. Datenbankinhalte ansprechen
      1. Eine Datenbank anlegen
        1. Alles eine Frage der Klasse
      2. Eine Datenbank aktualisieren
      3. Eine Datenbank abfragen
    4. Diverse Kleinigkeiten
      1. Ini-Dateien lesen
      2. Dateien kopieren per BITS
        1. Dateien per RSS-Feed herunterladen
      3. E-Mails versenden
      4. Dateien aus dem Internet herunterladen
        1. Exkurs: Umgang mit ULRs
      5. Umgang mit Hexadezimalzahlen
      6. Bestätigungsboxen anzeigen
      7. Properties und Methoden indirekt ansprechen
    5. Der Umgang mit Umgebungsvariablen
    6. Zusammenfassung
  16. 13. PowerShell 2.0 für (etwas) Fortgeschrittene
    1. .NET-Funktionen aufrufen
      1. Shared-Methoden und Instanzenmethoden
        1. Aufruf einer Instanzenmethode
        2. Aufruf von Shared-Membern
      2. Umgang mit Konstantenlisten (Enumerationen)
      3. .NET-Assemblys nachladen
        1. Assemblys laden, die sich nicht im GAC befinden
        2. Klassen zählen
    2. Umgang mit Modulen
      1. Die Rolle des Modulmanifests
        1. Eine Modulmanifestdatei über das New-ModuleManifest-Cmdlet anlegen
      2. Module laden
      3. Ein Beispiel aus der Praxis
      4. Anlegen eines Binary Moduls
      5. Module als (neuer) PowerShell-Erweiterungsmechanismus
    3. Neue Typen und Objekte definieren
      1. Eine HashTable als praktische Abkürzung
      2. Neue Typen über Add-Type definieren
    4. Der Gültigkeitsbereich von Variablen
      1. Ein erstes Beispiel zum Thema Gültigkeitsbereich
      2. Die Rolle der Gültigkeitsbereichsmodifizierer
      3. Regeln für den Gültigkeitsbereich von Variablen
      4. Den Scope individuell festlegen
    5. Das Geheimnis der Parameterbindung
      1. Parameterbindung mit einem Skriptblock
    6. Windows PowerShell ISE erweitern
    7. Diverse Kleinigkeiten
      1. Eine Hashtable als Funktionsparameter
      2. Den ?:-Operator nachbauen
      3. Die Ausführungsgeschwindigkeit eines Cmdlets messen
      4. 64 Bit?
    8. Zusammenfassung
  17. 14. Sicherheit
    1. Ps1-Dateien und der Doppelklick
    2. Die Rolle der Ausführungsrichtlinie
    3. Umgang mit Zertifikaten
    4. Skriptdateien signieren
      1. Anlegen eines Zertifikats
      2. Signieren eines Skripts
        1. Ein Skript für das Signieren von Skripts
    5. Sichere Strings
      1. Anlegen eines PSCredential-Objekts
      2. Speichern eines SecureStrings in eine Datei
      3. Einen SecureString in ein reguläres String-Objekt konvertieren
      4. Einen SecureString über ein PSCredential-Objekt lesbar machen
      5. Dateien verschlüsseln
    6. Zusammenfassung
  18. 15. PowerShell-Erweiterungen
    1. Die Rolle der Snap-Ins
      1. Snap-Ins müssen registriert werden
    2. Das PowerShell Pack für Windows 7
    3. Die PowerShell Community Extensions (PSCX)
    4. TabExpansion
    5. PowerGUI und PowerGUI Script Editor
    6. Benutzeroberflächen mit PrimalForms
      1. Der erste Start
      2. Die Rolle der Events
      3. Aus dem Formular wird ein PowerShell-Skript
      4. Ein kleines Beispiel
        1. WinForms oder WPF?
    7. Die wichtigsten PowerShell-Erweiterungen auf einen Blick
    8. Zusammenfassung
  19. 16. Spaß mit der PowerShell
    1. Die sprechende Shell
    2. Power-Musik
    3. Quote of the day
    4. PowerShell-Quiz
    5. Das Game of Life mit der PowerShell
    6. Denke wie die PowerShell
    7. Zusammenfassung
  20. A. Glossar
    1. Array
    2. Ausnahme
    3. Cmdlet
    4. Collection
    5. Community
    6. Job
    7. Member
    8. Monad
    9. .NET
    10. Objekt
    11. Parameter
    12. Pipeline
    13. Pipelinebindung
    14. PowerShell ISE
    15. Provider
    16. Remoting
    17. Skript
    18. Tipps
    19. Twitter
    20. Typ
    21. Windows Management Framework
    22. WMI
    23. WS-Man
  21. B. Stapeldateien umstellen
    1. Ein erster (Rück-)Überblick
    2. Tipps für eine (mögliche) Umstellung
      1. Kommentare
      2. Variablen
        1. Ausgabe von Werten
      3. Eingabe von Werten
    3. Parameterübergabe an eine Stapeldatei
      1. Aufruf weiterer Stapeldateien
        1. Sprünge mit GOTO
      2. Fehlerbehandlung mit ERRORLEVEL
      3. Entscheidungen
      4. Wiederholungen mit FOR
      5. Verarbeiten von Text
      6. Die Pipeline
    4. Ein abschließendes Beispiel
    5. Zusammenfassung
  22. C. Das Prinzip der Typenerweiterung
    1. Die Grundlage für Typenerweiterungen – die Typendefinitionsdateien
    2. Eigene Typendefinitionserweiterungen
  23. D. Die PowerShell bei Microsoft Server-Produkten
    1. Exchange Server 2007
    2. SQL Server 2008
    3. SharePoint 2010
      1. Anlegen einer Site
    4. Zusammenfassung
  24. Stichwortverzeichnis
  25. Impressum