Vorwort zur fünften Auflage Januar 2016 | 20 |
Wer bin ich? | 20 |
Wer sind Sie? | 21 |
Was ist neu in diesem Buch? | 21 |
Sind in diesem Buch alle Features der PowerShell beschrieben? | 22 |
Wem ist zu danken? | 22 |
Woher bekommen Sie die Beispiele aus diesem Buch? | 22 |
Wo kann ich mich schulen oder beraten lassen? | 23 |
Zum Schluss des Vorworts .?.?. | 23 |
Über den Autor Dr. Holger Schwichtenberg | 24 |
Über den Co-Autor Peter Monadjemi | 25 |
Teil A: PowerShell-Basiswissen | 26 |
1 Erste Schritte mit der Windows PowerShell | 28 |
1.1 Was ist die Windows PowerShell? | 28 |
1.2 Geschichte der Windows PowerShell | 29 |
1.3 Motivation zur Windows PowerShell | 30 |
1.4 Betriebssysteme mit vorinstallierter PowerShell | 33 |
1.5 PowerShell und Linux | 34 |
1.6 PowerShell herunterladen und auf anderen Betriebssystemen installieren | 35 |
1.7 Die Windows PowerShell testen | 38 |
1.8 Woher kommen die Commandlets? | 47 |
1.9 PowerShell Community Extensions (PSCX) herunterladen und installieren | 47 |
1.10 Den PowerShell-Editor „ISE“ verwenden | 49 |
Architektur der Windows PowerShell | 54 |
3 Einzelbefehle der PowerShell | 58 |
3.1 Commandlets | 58 |
3.2 Aliase | 67 |
3.3 Ausdrücke | 74 |
3.4 Externe Befehle | 75 |
3.5 Dateinamen | 76 |
4 Hilfefunktionen | 78 |
4.1 Auflisten der verfügbaren Befehle | 78 |
4.2 Erläuterungen zu den Befehlen | 81 |
4.3 Hilfe zu Parametern | 82 |
4.4 Hilfe mit Show-Command | 82 |
4.5 Hilfefenster | 83 |
4.6 Aktualisieren der Hilfedateien | 85 |
4.7 Online-Hilfe | 86 |
4.8 Dokumentation der .NET?Klassen | 87 |
5 Objektorientiertes Pipelining | 90 |
5.1 Pipeline-Operator | 90 |
5.2 .NET-Objekte in der Pipeline | 91 |
5.3 Pipeline Processor | 93 |
5.4 Pipelining von Parametern | 94 |
5.5 Pipelining von klassischen Befehlen | 96 |
5.6 Anzahl der Objekte in der Pipeline | 97 |
5.7 Zugriff auf einzelne Objekte aus einer Menge | 97 |
5.8 Zugriff auf einzelne Werte in einem Objekt | 99 |
5.9 Methoden ausführen | 100 |
5.10 Analyse des Pipeline-Inhalts | 102 |
5.11 Filtern | 113 |
5.12 Zusammenfassung von Pipeline-Inhalten | 116 |
5.13 „Kastrierung“ von Objekten in der Pipeline | 117 |
5.14 Sortieren | 118 |
5.15 Duplikate entfernen | 118 |
5.16 Gruppierung | 119 |
5.17 Berechnungen | 121 |
5.18 Zwischenschritte in der Pipeline mit Variablen | 121 |
5.19 Verzweigungen in der Pipeline | 122 |
5.20 Vergleiche zwischen Objekten | 124 |
5.21 Zusammenfassung | 125 |
5.22 Praxisbeispiele | 125 |
6 PowerShell-Skripte | 128 |
6.1 Skriptdateien | 128 |
6.2 Start eines Skripts | 130 |
6.3 Aliase für Skripte verwenden | 131 |
6.4 Parameter für Skripte | 132 |
6.5 Skripte dauerhaft einbinden (Dot Sourcing) | 133 |
6.6 Sicherheitsfunktionen für PowerShell-Skripte | 134 |
6.7 Skripte anhalten | 138 |
7 PowerShell-Skriptsprache | 140 |
7.1 Hilfe zur PowerShell-Skriptsprache | 140 |
7.2 Befehlstrennung | 141 |
7.3 Kommentare | 141 |
7.4 Variablen | 142 |
7.5 Variablenbedingungen | 149 |
7.6 Zahlen | 150 |
7.7 Zeichenketten | 152 |
7.8 Reguläre Ausdrücke | 158 |
7.9 Datum und Uhrzeit | 165 |
7.10 Arrays | 166 |
7.11 Assoziative Arrays (Hash-Tabellen) | 169 |
7.12 Operatoren | 170 |
7.13 Überblick über die Kontrollkonstrukte | 171 |
7.14 Schleifen | 172 |
7.15 Bedingungen | 177 |
7.16 Unterroutinen (Prozedur/Funktionen) | 179 |
7.17 Eingebaute Funktionen | 185 |
7.18 Fehlerbehandlung | 185 |
7.19 Objektorientiertes Programmieren mit Klassen | 192 |
8 Ausgaben | 196 |
8.1 Ausgabe-Commandlets | 196 |
8.2 Out-GridView | 199 |
8.3 Standardausgabe | 200 |
8.4 Einschränkung der Ausgabe | 203 |
8.5 Seitenweise Ausgabe | 203 |
8.6 Ausgabe einzelner Werte | 204 |
8.7 Details zum Ausgabeoperator | 206 |
8.8 Benutzerdefinierte Tabellenformatierung | 209 |
8.9 Ausgabe von Methodenergebnissen und Unterobjekten in Pipelines | 210 |
8.10 Ausgabe von Methodenergebnissen und Unterobjekten in Zeichenketten | 211 |
8.11 Unterdrückung der Ausgabe | 211 |
8.12 Ausgaben an Drucker | 212 |
8.13 Ausgaben in Dateien | 212 |
8.14 Umleitungen (Redirection) | 213 |
8.15 Sprachausgabe | 214 |
9 Benutzereingaben | 216 |
9.1 Read-Host | 216 |
9.2 Grafischer Eingabedialog | 217 |
9.3 Dialogfenster | 217 |
9.4 Authentifizierungsdialog | 218 |
10 Das PowerShell-Navigationsmodell | 220 |
10.1 Einführungsbeispiel: Navigation in der Registrierungsdatenbank | 220 |
10.2 Provider und Laufwerke | 221 |
10.3 Navigationsbefehle | 223 |
10.4 Pfadangaben | 224 |
10.5 Beispiel | 226 |
10.6 Eigene Laufwerke definieren | 227 |
11 PowerShell-Werkzeuge | 228 |
11.1 PowerShell-Standardkonsole | 228 |
11.2 PowerShell Integrated Scripting Environment (ISE) | 235 |
11.3 PowerShell Script Analyzer | 241 |
11.4 CIM Explorer for PowerShell ISE | 247 |
11.5 PowerShell Web Access (PSWA) | 248 |
11.6 ISE Steroids | 254 |
11.7 PowerShellPlus | 255 |
11.8 PoshConsole | 258 |
11.9 PowerGUI | 259 |
11.10 PowerShell Analyzer | 260 |
11.11 PrimalScript | 261 |
11.12 PowerShell Help | 263 |
11.13 PowerShell Help Reader | 264 |
11.14 PowerTab | 264 |
11.15 NuGet Package Manager | 264 |
11.16 PowerShell Tools for Visual Studio | 265 |
11.17 PowerShell Remoting | 266 |
11.18 Vergleich der Skripteditoren | 266 |
Teil B: PowerShell-Aufbauwissen | 268 |
12 Fernausführung (Remoting) | 270 |
12.1 RPC-Fernabfrage ohne WS?Management | 271 |
12.2 Anforderungen an PowerShell Remoting | 272 |
12.3 Rechte für PowerShell-Remoting | 273 |
12.4 Einrichten von PowerShell Remoting | 274 |
12.5 Überblick über die Fernausführungs-Commandlets | 276 |
12.6 Interaktive Fernverbindungen im Telnet-Stil | 277 |
12.7 Fernausführung von Befehlen | 278 |
12.8 Parameterübergabe an die Fernausführung | 282 |
12.9 Fernausführung von Skripten | 283 |
12.10 Ausführung auf mehreren Computern | 284 |
12.11 Sitzungen | 285 |
12.12 Implizites Remoting | 289 |
12.13 Zugriff auf entfernte Computer außerhalb der eigenen Domäne | 290 |
12.14 Verwaltung des WS-Management-Dienstes | 293 |
12.15 PowerShell Direct für HyperV | 295 |
12.16 Praxisbeispiel zu PowerShell Direct | 297 |
13 Verwendung von .NET-Klassen | 300 |
13.1 Microsoft Developer Network (MSDN) | 300 |
13.2 Erzeugen von Instanzen | 301 |
13.3 Parameterbehaftete Konstruktoren | 303 |
13.4 Initialisierung von Objekten | 304 |
13.5 Nutzung von Attributen und Methoden | 305 |
13.6 Statische Mitglieder in .NET-Klassen und statische .NET-Klassen | 307 |
13.7 Generische Klassen nutzen | 309 |
13.8 Zugriff auf bestehende Objekte | 310 |
13.9 Laden von Assemblies | 311 |
13.10 Objektanalyse | 312 |
13.11 Auflistungen (Enumerationen) | 313 |
13.12 Verknüpfen von Aufzählungswerten | 314 |
14 Verwendung von COM-Klassen | 316 |
14.1 Erzeugen von Instanzen | 316 |
14.2 Nutzung von Attributen und Methoden | 317 |
14.3 Holen bestehender Instanzen | 318 |
15 Zugriff auf die Windows Management Instrumentation (WMI) | 320 |
15.1 Einführung in WMI | 320 |
15.2 WMI in der Windows PowerShell | 346 |
15.3 Abruf von WMI-Objektmengen | 347 |
15.4 Fernzugriffe | 348 |
15.5 Filtern und Abfragen | 348 |
15.6 Liste aller WMI-Klassen | 353 |
15.7 Hintergrundwissen: WMI-Klassenprojektion mit dem PowerShell-WMI-Objektadapter | 353 |
15.8 Beschränkung der Ausgabeliste bei WMI-Objekten | 357 |
15.9 Zugriff auf einzelne Mitglieder von WMI-Klassen | 358 |
15.10 Werte setzen in WMI-Objekten | 359 |
15.11 Umgang mit WMI-Datumsangaben | 361 |
15.12 Methodenaufrufe | 362 |
15.13 Neue WMI-Instanzen erzeugen | 363 |
15.14 Instanzen entfernen | 364 |
15.15 Commandlet Definition XML-Datei (CDXML) | 365 |
16 Dynamische Objekte | 368 |
16.1 Erweitern bestehender Objekte | 368 |
16.2 Komplett dynamische Objekte | 370 |
17 Einbinden von C# und VB.NET | 372 |
18 Win32-API-Aufrufe | 374 |
19 Fehlersuche | 378 |
19.1 Detailinformationen | 378 |
19.2 Einzelschrittmodus | 379 |
19.3 Zeitmessung | 380 |
19.4 Ablaufverfolgung | 381 |
19.5 Kommandozeilenbasiertes Script-Debugging | 381 |
20 Transaktionen | 384 |
20.1 Commandlets für Transaktionen | 384 |
20.2 Start und Ende einer Transaktion | 385 |
20.3 Zurücksetzen der Transaktion | 386 |
20.4 Mehrere Transaktionen | 387 |
21 Hintergrundaufträge („Jobs“) | 388 |
21.1 Voraussetzungen | 388 |
21.2 Architektur | 389 |
21.3 Starten eines Hintergrundauftrags | 389 |
21.4 Hintergrundaufträge abfragen | 390 |
21.5 Warten auf einen Hintergrundauftrag | 391 |
21.6 Abbrechen und Löschen von Aufträgen | 391 |
21.7 Analyse von Fehlermeldungen | 392 |
21.8 Fernausführung von Hintergrundaufträgen | 392 |
21.9 Praxisbeispiel | 392 |
22 Geplante Aufgaben und zeitgesteuerte Jobs | 394 |
22.1 Geplante Aufgaben (Scheduled Tasks) | 394 |
22.2 Zeitgesteuerte Jobs | 398 |
23 PowerShell-Workflows | 404 |
23.1 Ein erstes Beispiel | 404 |
23.2 Unterschiede zu einer Function bzw. einem Skript | 409 |
23.3 Einschränkungen bei Workflows | 409 |
23.4 Workflows in der Praxis | 411 |
23.5 Workflows in Visual Studio erstellen | 418 |
24 Ereignissystem | 436 |
24.1 WMI-Ereignisse | 436 |
24.2 WMI-Ereignisabfragen | 436 |
24.3 WMI-Ereignisse seit PowerShell 1.0 | 438 |
24.4 Registrieren von WMI?Ereignisquellen seit PowerShell 2.0 | 439 |
24.5 Auslesen der Ereignisliste | 440 |
24.6 Reagieren auf Ereignisse | 442 |
24.7 WMI-Ereignisse ab PowerShell-Version 3.0 | 444 |
24.8 Registrieren von .NET?Ereignissen | 444 |
24.9 Erzeugen von Ereignissen | 445 |
25 Datenbereiche und Datendateien | 448 |
25.1 Datenbereiche | 448 |
25.2 Datendateien | 450 |
25.3 Mehrsprachigkeit/Lokalisierung | 451 |
26 Desired State Configuration (DSC) | 454 |
26.1 Grundprinzipien | 455 |
26.2 DSC für Linux | 455 |
26.3 Ressourcen | 456 |
26.4 Verfügbare DSC-Ressourcen | 456 |
26.5 Eigenschaften einer Ressource | 459 |
26.6 Aufbau eines DSC-Dokuments | 459 |
26.7 Commandlets für die Arbeit mit DSC | 460 |
26.8 Ein erstes DSC-Beispiel | 460 |
26.9 Kompilieren und Anwendung eines DSC-Dokuments | 461 |
26.10 Variablen in DSC-Dateien | 463 |
26.11 Parameter für DSC-Dateien | 464 |
26.12 Konfigurationsdaten | 465 |
26.13 Entfernen einer DSC-Konfiguration | 468 |
26.14 DSC Pull Server | 471 |
26.15 DSC-Praxisbeispiel 1: IIS installieren | 478 |
26.16 DSC-Praxisbeispiel 2: Software installieren | 479 |
26.17 DSC-Praxisbeispiel 3: Software deinstallieren | 482 |
26.18 Realisierung einer DSC-Ressource | 482 |
26.19 Weitere Möglichkeiten | 483 |
27 PowerShell-Snap-Ins | 484 |
27.1 Einbinden von Snap-Ins | 484 |
27.2 Liste der Commandlets | 488 |
27.3 Doppeldeutige Namen | 489 |
28 PowerShell-Module | 490 |
28.1 Überblick über die Commandlets | 490 |
28.2 Modularchitektur | 491 |
28.3 Module aus dem Netz herunterladen und installieren mit PowerShellGet | 492 |
28.4 Module manuell installieren | 497 |
28.5 Auflisten der verfügbaren Module | 498 |
28.6 Importieren von Modulen | 499 |
28.7 Entfernen von Modulen | 502 |
29 Ausgewählte PowerShell-Erweiterungen | 504 |
29.1 PowerShell-Module in Windows 7 und Windows Server 2008 R2 | 504 |
29.2 PowerShell-Module in Windows 8.0 und Windows Server 2012 | 506 |
29.3 PowerShell-Module in Windows 8.1 und Windows Server 2012 R2 | 508 |
29.4 PowerShell-Module in Windows 10 und Windows Server 2016 | 510 |
29.5 Windows PowerShell Community Extensions (PSCX) | 515 |
29.6 PowerShellPack | 518 |
29.7 www.IT-Visions.de PowerShell Extensions | 520 |
29.8 Quest Management Shell for Active Directory | 521 |
29.9 Microsoft Exchange Server | 522 |
29.10 System Center Virtual Machine Manager | 523 |
29.11 PowerShell Management Library for Hyper-V (pshyperv) | 524 |
29.12 Powershell Outlook Account Manager | 525 |
29.13 PowerShell Configurator (PSConfig) | 525 |
29.14 Weitere Erweiterungen | 526 |
30 Tipps und Tricks zur PowerShell | 528 |
30.1 Befehlsgeschichte | 528 |
30.2 System- und Hostinformationen | 529 |
30.3 Alle Anzeigen löschen | 530 |
30.4 Anpassen der Eingabeaufforderung (Prompt) | 530 |
30.5 Standardeinstellungen ändern mit Profilskripten | 531 |
30.6 ISE erweitern | 536 |
30.7 PowerShell für Gruppenrichtlinienskripte | 537 |
30.8 Einblicke in die Interna der Pipeline-Verarbeitung | 539 |
C | 542 |
31 Dateisystem | 544 |
31.1 Laufwerke | 545 |
31.2 Ordnerinhalte | 550 |
31.3 Kurznamen | 551 |
31.4 Dateisystemoperationen | 552 |
31.5 Praxisbeispiel: Leere Ordner löschen | 553 |
31.6 Papierkorb leeren | 554 |
31.7 Dateieigenschaften lesen | 554 |
31.8 Praxisbeispiel: Fotos nach Aufnahmedatum sortieren | 555 |
31.9 Datei-Hash | 556 |
31.10 Finden von Duplikaten | 557 |
31.11 Dateieigenschaften verändern | 559 |
31.12 Verknüpfungen im Dateisystem | 561 |
31.13 Komprimierung | 566 |
31.14 Dateisystemfreigaben | 569 |
31.15 Überwachung des Dateisystems | 580 |
31.16 Dateiversionsverlauf | 581 |
31.17 Windows Server Backup | 582 |
32 Festplattenverschlüsselung mit BitLocker | 584 |
32.1 Übersicht über das BitLocker-Modul | 585 |
32.2 Verschlüsseln eines Laufwerks | 586 |
33 Dokumente | 588 |
33.1 Textdateien | 588 |
33.2 CSV-Dateien | 589 |
33.3 Analysieren von Textdateien | 592 |
33.4 INI-Dateien | 595 |
33.5 XML-Dateien | 595 |
33.6 HTML-Dateien | 604 |
33.7 Binärdateien | 604 |
34 Datenbanken | 606 |
34.1 ADO.NET-Grundlagen | 606 |
34.2 Beispieldatenbank | 612 |
34.3 Datenzugriff mit den Bordmitteln der PowerShell | 613 |
34.4 Datenzugriff mit den PowerShell-Erweiterungen | 624 |
34.5 Datenbankzugriff mit SQLPS | 627 |
34.6 Datenbankzugriff mit SQLPSX | 627 |
35 Microsoft-SQL-Server-Administration | 628 |
35.1 PowerShell-Integration im SQL Server Management Studio | 629 |
35.2 SQL-Server-Laufwerk „SQLSERVER:“ | 630 |
35.3 Die SQLPS-Commandlets | 633 |
35.4 Die SQL Server Management Objects (SMO) | 635 |
35.5 SQLPSX | 638 |
35.6 Microsoft-SQL-Server-Administration mit der PowerShell in der Praxis | 646 |
36 ODBC-Datenquellen | 652 |
ODBC-Treiber und -Datenquellen auflisten | 653 |
Anlegen einer ODBC-Datenquelle | 654 |
Zugriff auf eine ODBC-Datenquelle | 655 |
37 Registrierungsdatenbank (Registry) | 658 |
37.1 Schlüssel auslesen | 658 |
37.2 Schlüssel anlegen und löschen | 659 |
37.3 Laufwerke definieren | 659 |
37.4 Werte anlegen und löschen | 660 |
37.5 Werte auslesen | 661 |
37.6 Praxisbeispiel: Windows-Explorer-Einstellungen | 661 |
37.7 Praxisbeispiel: Massenanlegen von Registry-Schlüsseln | 662 |
38 Computerverwaltung | 664 |
38.1 Computerinformationen | 664 |
38.2 Computername und Domäne | 666 |
38.3 Herunterfahren und Neustarten | 667 |
38.4 Wiederherstellungspunkte verwalten | 668 |
39 Hardwareverwaltung | 670 |
39.1 Hardwarebausteine | 670 |
39.2 Plug-and-Play-Geräte | 672 |
39.3 Druckerverwaltung (ältere Betriebssysteme) | 672 |
39.4 Druckerverwaltung (seit Windows 8 und Windows Server 2012) | 673 |
40 Softwareverwaltung | 676 |
40.1 Softwareinventarisierung | 676 |
40.2 Installation von Anwendungen | 679 |
40.3 Deinstallation von Anwendungen | 680 |
40.4 Praxisbeispiel: Installationstest | 680 |
40.5 Installationen mit PowerShell Package Management („OneGet“) | 681 |
40.6 Versionsnummer ermitteln | 684 |
40.7 Servermanager | 685 |
40.8 Softwareeinschränkungen mit dem PowerShell-Modul „AppLocker“ | 696 |
41 Prozessverwaltung | 702 |
41.1 Prozesse auflisten | 702 |
41.2 Prozesse starten | 703 |
41.3 Prozesse beenden | 705 |
41.4 Warten auf das Beenden einer Anwendung | 705 |
42 Systemdienste | 706 |
42.1 Dienste auflisten | 706 |
42.2 Dienstzustand ändern | 708 |
42.3 Diensteigenschaften ändern | 709 |
43 Netzwerk | 710 |
43.1 Netzwerkkonfiguration (ältere Betriebssysteme) | 710 |
43.2 Netzwerkkonfiguration (ab Windows 8 und Windows Server 2012) | 712 |
43.3 DNS-Client-Konfiguration | 715 |
43.4 DNS-Namensauflösung | 718 |
43.5 Erreichbarkeit prüfen (Ping) | 720 |
43.6 Windows Firewall | 721 |
43.7 Remote Desktop (RDP) einrichten | 727 |
43.8 E-Mails senden (SMTP) | 728 |
43.9 Abruf von Daten von einem HTTP-Server | 730 |
43.10 Aufrufe von SOAP-Webdiensten | 731 |
43.11 Aufrufe von OData-Diensten | 734 |
43.12 BITSTransfer | 734 |
44 Ereignisprotokolle | 736 |
14.1 Protokolleinträge auslesen | 736 |
14.2 Ereignisprotokolle erzeugen | 738 |
14.3 Protokolleinträge erzeugen | 738 |
14.4 Protokollgröße festlegen | 738 |
14.5 Protokolleinträge löschen | 738 |
45 Leistungsdaten | 740 |
45.1 Zugriff auf Leistungsindikatoren über WMI | 740 |
45.2 Get-Counter | 741 |
46 Sicherheitseinstellungen | 744 |
46.1 Grundlagen | 744 |
46.2 Zugriffsrechtelisten auslesen | 749 |
46.3 Einzelne Rechteeinträge auslesen | 751 |
46.4 Besitzer auslesen | 752 |
46.5 Benutzer und SID | 752 |
46.6 Hinzufügen eines Rechteeintrags zu einer Zugriffsrechteliste | 756 |
46.7 Entfernen eines Rechteeintrags aus einer Zugriffsrechteliste | 758 |
46.8 Zugriffsrechteliste übertragen | 760 |
46.9 Zugriffsrechteliste über SDDL setzen | 760 |
47 Active Directory | 762 |
47.1 Benutzer- und Gruppenverwaltung mit WMI | 763 |
47.2 Einführung in System.DirectoryServices | 764 |
47.3 Basiseigenschaften | 775 |
47.4 Benutzer- und Gruppenverwaltung im Active Directory | 777 |
47.5 Verwaltung der Organisationseinheiten | 785 |
47.6 Suche im Active Directory | 786 |
47.7 Navigation im Active Directory mit den PowerShell Extensions | 793 |
47.8 Verwendung der Active-Directory-Erweiterungen von www.IT-Visions.de | 794 |
47.9 PowerShell-Modul „Active Directory“ (ADPowerShell) | 796 |
47.10 PowerShell-Modul „ADDSDeployment“ | 819 |
47.11 Informationen über die Active?Directory-Struktur | 821 |
48 Gruppenrichtlinien | 824 |
48.1 Verwaltung der Gruppenrichtlinien | 825 |
48.2 Verknüpfung der Gruppenrichtlinien | 826 |
48.3 Gruppenrichtlinienberichte | 828 |
48.4 Gruppenrichtlinienvererbung | 829 |
48.5 Weitere Möglichkeiten | 830 |
49 Virtuelle Systeme mit Hyper-V | 832 |
49.1 Das Hyper-V-Modul von Microsoft | 833 |
49.2 Die ersten Schritte mit dem Hyper-V-Modul | 835 |
49.3 Virtuelle Maschinen anlegen | 839 |
49.4 Umgang mit virtuellen Festplatten | 845 |
49.5 Konfiguration virtueller Maschinen | 848 |
49.6 Dateien kopieren in virtuelle Systeme | 852 |
49.7 PowerShell Management Library for Hyper-V (für ältere Betriebssysteme) | 853 |
50 Internet Information Server (IIS) | 858 |
50.1 Überblick | 858 |
50.2 Navigationsprovider | 860 |
50.3 Anlegen von Websites | 862 |
50.4 Praxisbeispiel: Massenanlegen von Websites | 863 |
50.5 Ändern von Eigenschaften von Websites | 866 |
50.6 Anwendungspool anlegen | 866 |
50.7 Virtuelle Verzeichnisse und IIS?Anwendungen | 867 |
50.8 Website-Zustand ändern | 868 |
50.9 Anwendungspools starten und stoppen | 868 |
50.10 Löschen von Websites | 869 |
51 Microsoft Exchange Server | 870 |
51.1 Daten abrufen | 870 |
51.2 Postfächer verwalten | 871 |
51.3 Öffentliche Ordner verwalten | 872 |
52 Optimierungen und Problemlösungen | 874 |
52.1 PowerShell-Modul „TroubleshootingPack“ | 874 |
52.2 PowerShell-Modul „Best Practices“ | 878 |
53 Grafische Benutzeroberflächen | 880 |
53.1 Eingabemasken | 880 |
53.2 Universelle Objektdarstellung | 882 |
53.3 Zwischenablage | 884 |
53.4 WPF PowerShell Kit (WPK) | 885 |
D | 896 |
54 Entwicklung von Commandlets in der PowerShell-Sprache | 898 |
54.1 Aufbau eines skriptbasierten Commandlets | 898 |
54.2 Parameterfestlegung | 901 |
54.3 Auszeichnung der Parameterdefinitionen | 906 |
54.4 Dokumentation | 909 |
55 Entwicklung eigener Commandlets mit C# | 912 |
55.1 Technische Voraussetzungen | 912 |
55.2 Grundkonzept der .NET-basierten Commandlets | 914 |
55.3 Schrittweise Erstellung eines minimalen Commandlets | 915 |
55.4 Erstellung eines Commandlets mit einem Rückgabeobjekt | 923 |
55.5 Erstellung eines Commandlets mit mehreren Rückgabeobjekten | 925 |
55.6 Erstellen eines Commandlets mit Parametern | 929 |
55.7 Verarbeiten von Pipeline-Eingaben | 931 |
55.8 Verkettung von Commandlets | 934 |
55.9 Fehlersuche in Commandlets | 938 |
55.10 Statusinformationen | 941 |
55.11 Unterstützung für Sicherheitsabfragen | 946 |
55.12 Festlegung der Hilfeinformationen | 948 |
55.13 Erstellung von Commandlets für den Zugriff auf eine Geschäftsanwendung | 952 |
55.14 Konventionen für Commandlets | 953 |
55.15 Weitere Möglichkeiten | 955 |
56 Hosting der Windows PowerShell | 956 |
56.1 Voraussetzungen für das Hosting | 957 |
56.2 Hosting mit PSHost | 958 |
56.3 Vereinfachtes Hosting seit PowerShell 2.0 | 961 |
57 PowerShell-Module erstellen | 964 |
57.1 Erstellen eines Skriptmoduls | 964 |
57.2 Erstellen eines Moduls mit Binärdateien | 966 |
57.3 Erstellen eines Moduls mit Manifest | 966 |
Anhang | 974 |
A | 976 |
Crashkurs „Objektorientierung“ | 976 |
B | 984 |
Crashkurs „.NET Framework“ | 984 |
C Literatur | 994 |
D | 998 |
Weitere Informationen im Internet | 998 |