Suchen und Finden
Service
Windows PowerShell 5 und PowerShell 7 - Das Praxisbuch
Holger Schwichtenberg
Verlag Carl Hanser Fachbuchverlag, 2020
ISBN 9783446460812 , 1420 Seiten
4. Auflage
Format PDF, ePUB, OL
Kopierschutz Wasserzeichen
Inhalt
6
Vorwort
26
Teil A: PowerShell-Basiswissen
36
1 Fakten zur PowerShell
38
1.1 Was ist die PowerShell?
38
1.2 Geschichte der PowerShell
39
1.3 Welche Varianten und Versionen der PowerShell gibt es?
41
1.4 Windows PowerShell versus PowerShell Core versus PowerShell 7.0
42
1.5 Motivation zur PowerShell
43
1.6 Betriebssysteme mit vorinstallierter PowerShell
46
1.7 Einflussfaktoren auf die Entwicklung der PowerShell
47
1.8 Anbindung an Klassenbibliotheken
49
1.9 PowerShell versus WSH
49
2 Erste Schritte mit der PowerShell
52
2.1 Windows PowerShell herunterladen und auf anderen Windows-Betriebssystemen installieren
52
2.2 Die Windows PowerShell testen
56
2.3 Woher kommen die PowerShell-Befehle?
65
2.4 PowerShell Community Extensions (PSCX) herunterladen und installieren
66
2.5 Den Windows PowerShell-Editor „ISE“ verwenden
69
2.6 PowerShell 7 installieren und testen
71
3 Einzelbefehle der PowerShell
80
3.1 Commandlets
80
3.2 Aliase
93
3.3 Ausdrücke
101
3.4 Externe Befehle (klassische Kommandozeilenbefehle)
102
3.5 Dateinamen
104
4 Hilfefunktionen
106
4.1 Auflisten der verfügbaren Befehle
106
4.2 Praxistipp: Den Standort eines Kommandozeilenbefehls suchen
107
4.3 Anzahl der Befehle
108
4.4 Volltextsuche
110
4.5 Erläuterungen zu den Befehlen
111
4.6 Hilfe zu Parametern
112
4.7 Hilfe mit Show-Command
113
4.8 Hilfefenster
115
4.9 Allgemeine Hilfetexte
116
4.10 Aktualisieren der Hilfedateien
117
4.11 Online-Hilfe
119
4.12 Fehlende Hilfetexte
120
4.13 Dokumentation der .NETKlassen
121
5 Objektorientiertes Pipelining
124
5.1 Befehlsübersicht
124
5.2 Pipeline-Operator
125
5.3 .NET-Objekte in der Pipeline
126
5.4 Pipeline Processor
127
5.5 Pipelining von Parametern
129
5.6 Pipelining von klassischen Befehlen
131
5.7 Zeilenumbrüche in Pipelines
133
5.8 Schleifen
134
5.9 Zugriff auf einzelne Objekte aus einer Menge
137
5.10 Zugriff auf einzelne Werte in einem Objekt
138
5.11 Methoden ausführen
140
5.12 Analyse des Pipeline-Inhalts
142
5.13 Filtern
157
5.14 Zusammenfassung von Pipeline-Inhalten
162
5.15 „Kastrierung“ von Objekten in der Pipeline
162
5.16 Sortieren
163
5.17 Duplikate entfernen
164
5.18 Gruppierung
165
5.19 Objekte verbinden mit Join-String
171
5.20 Berechnungen
172
5.21 Zwischenschritte in der Pipeline mit Variablen
173
5.22 Verzweigungen in der Pipeline
174
5.23 Vergleiche zwischen Objekten
176
5.24 Weitere Praxislösungen
177
6 PowerShell-Skripte
180
6.1 Skriptdateien
180
6.2 Start eines Skripts
182
6.3 Aliase für Skripte verwenden
184
6.4 Parameter für Skripte
184
6.5 Skripte dauerhaft einbinden (Dot Sourcing)
186
6.6 Das aktuelle Skriptverzeichnis
186
6.7 Sicherheitsfunktionen für PowerShell-Skripte
187
6.8 Skripte mit vollen Rechten (Elevation)
189
6.9 Blockierte PowerShell-Skripte
190
6.10 PowerShell-Skripte im Kontextmenü des Windows Explorers
191
6.11 Anforderungsdefinitionen von Skripten
193
6.12 Skripte anhalten
193
6.13 Versionierung und Versionsverwaltung von Skripten
193
7 PowerShell-Skriptsprache
196
7.1 Hilfe zur PowerShell-Skriptsprache
196
7.2 Befehlstrennung
197
7.3 Kommentare
197
7.4 Variablen
198
7.5 Variablenbedingungen
211
7.6 Zahlen
212
7.7 Zeichenketten (Strings)
214
7.8 Reguläre Ausdrücke
224
7.9 Datum und Uhrzeit
230
7.10 Objekte
231
7.11 Arrays
232
7.12 ArrayList
235
7.13 Assoziative Arrays (Hash-Tabellen)
236
7.14 Operatoren
237
7.15 Überblick über die Kontrollkonstrukte
241
7.16 Schleifen
242
7.17 Bedingungen
247
7.18 Unterroutinen (Prozedur/Funktionen)
249
7.19 Eingebaute Funktionen
255
7.20 Fehlerausgabe
255
7.21 Fehlerbehandlung
256
7.22 Laufzeitfehler erzeugen
268
7.23 Objektorientiertes Programmieren mit Klassen
268
8 Ausgaben
272
8.1 Ausgabe-Commandlets
272
8.2 Benutzerdefinierte Tabellenformatierung
275
8.3 Benutzerdefinierte Listenausgabe
277
8.4 Mehrspaltige Ausgabe
277
8.5 Out-GridView
278
8.6 Standardausgabe
280
8.7 Einschränkung der Ausgabe
283
8.8 Seitenweise Ausgabe
283
8.9 Ausgabe einzelner Werte
284
8.10 Details zum Ausgabeoperator
287
8.11 Ausgabe von Methodenergebnissen und Unterobjekten in Pipelines
290
8.12 Ausgabe von Methodenergebnissen und Unterobjekten in Zeichenketten
290
8.13 Unterdrückung der Ausgabe
291
8.14 Ausgaben an Drucker
292
8.15 Ausgaben in Dateien
292
8.16 Umleitungen (Redirection)
293
8.17 Fortschrittsanzeige
293
8.18 Sprachausgabe
294
9 Das PowerShell-Navigationsmodell (PowerShell Provider)
296
9.1 Einführungsbeispiel: Navigation in der Registrierungsdatenbank
296
9.2 Provider und Laufwerke
297
9.3 Navigationsbefehle
300
9.4 Pfadangaben
300
9.5 Beispiel
302
9.6 Eigene Laufwerke definieren
303
10 Fernausführung (Remoting)
304
10.1 RPC-Fernabfrage ohne WS-Management
305
10.2 Anforderungen an PowerShell Remoting
306
10.3 Rechte für PowerShell-Remoting
307
10.4 Einrichten von PowerShell Remoting
308
10.5 Überblick über die Fernausführungs-Commandlets
310
10.6 Interaktive Fernverbindungen im Telnet-Stil
311
10.7 Fernausführung von Befehlen
312
10.8 Parameterübergabe an die Fernausführung
316
10.9 Fernausführung von Skripten
317
10.10 Ausführung auf mehreren Computern
318
10.11 Sitzungen
319
10.12 Implizites Remoting
324
10.13 Zugriff auf entfernte Computer außerhalb der eigenen Domäne
325
10.14 Verwaltung des WS-Management-Dienstes
329
10.15 PowerShell Direct für Hyper-V
330
10.16 Praxislösung zu PowerShell Direct
332
11 PowerShell-Werkzeuge
336
11.1 PowerShell-Standardkonsole
336
11.2 Windows Terminal
346
11.3 PowerShell Integrated Scripting Environment (ISE)
348
11.4 PowerShell Script Analyzer
360
11.5 PowerShell Analyzer
365
11.6 PowerShell Tools for Visual Studio
366
11.7 PowerShell Pro Tools for Visual Studio
368
11.8 NuGet Package Manager
368
11.9 Visual Studio Code mit PowerShell-Erweiterung
369
11.10 PowerShell-Erweiterungen für andere Editoren
372
11.11 PowerShell Web Access (PSWA)
372
11.12 Azure Cloud Shell
378
11.13 ISE Steroids
378
11.14 PowerShellPlus
379
11.15 PoshConsole
382
11.16 PowerGUI
383
11.17 PrimalScript
384
11.18 PowerShell Help
386
11.19 CIM Explorer for PowerShell ISE
386
11.20 PowerShell Help Reader
387
11.21 PowerShell Remoting
388
12 Windows PowerShell Core 5.1 in Windows Nano Server
390
12.1 Installation
390
12.2 PowerShell-Skriptsprache
390
12.3 Werkzeuge
391
12.4 Fehlende Funktionen
391
13 PowerShell 7 für Windows, Linux und macOS
392
13.1 Motivation für den Einsatz der PowerShell 7 auf Linux und macOS
392
13.2 Basis der PowerShell 7
393
13.3 Identifizierung der PowerShell 7
394
13.4 Funktionsumfang der PowerShell 7
394
13.5 Entfallene Befehle in PowerShell 7
397
13.6 Erweiterungsmodule nutzen in PowerShell 7
402
13.7 Geänderte Funktionen in PowerShell 7
407
13.8 Neue Funktionen der PowerShell 7
409
13.9 PowerShell 7-Konsole
413
13.10 VSCode-PowerShell als Editor für PowerShell 7
413
13.11 Verwendung von PowerShell 7 auf Linux und macOS
418
13.12 PowerShell-Remoting via SSH
424
13.13 Dokumentation zur PowerShell 7
428
13.14 Quellcode zur PowerShell 7
429
Teil B: PowerShell-Aufbauwissen
432
14 Verwendung von .NET-Klassen
434
14.1 .NET versus .NET Core
434
14.2 Ermitteln der verwendeten .NET-Version
435
14.3 .NET-Bibliotheken
436
14.4 Microsoft Developer Network (MSDN)
438
14.5 Überblick über die Verwendung von .NET-Klassen
439
14.6 Erzeugen von Instanzen
439
14.7 Parameterbehaftete Konstruktoren
441
14.8 Initialisierung von Objekten
443
14.9 Nutzung von Attributen und Methoden
443
14.10 Statische Mitglieder in .NET-Klassen und statische .NET-Klassen
445
14.11 Generische Klassen nutzen
449
14.12 Zugriff auf bestehende Objekte
450
14.13 Laden von Assemblies
450
14.14 Liste der geladen Assemblies
453
14.15 Verwenden von Nuget-Assemblies
454
14.16 Objektanalyse
456
14.17 Aufzählungstypen (Auflistungen/Enumerationen)
457
15 Verwendung von COM-Klassen
462
15.1 Unterschiede zwischen COM und .NET
462
15.2 Erzeugen von COM-Instanzen
463
15.3 Abruf der Metadaten
463
15.4 Nutzung von Attributen und Methoden
464
15.5 Liste aller COM-Klassen
465
15.6 Holen bestehender COM-Instanzen
466
15.7 Distributed COM (DCOM)
466
16 Zugriff auf die Windows Management Instrumentation (WMI)
468
16.1 Einführung in WMI
468
16.2 WMI in der PowerShell
494
16.3 Open Management Infrastructure (OMI)
496
16.4 Abruf von WMI-Objektmengen
496
16.5 Fernzugriffe
497
16.6 Filtern und Abfragen
498
16.7 Liste aller WMI-Klassen
501
16.8 Hintergrundwissen: WMI-Klassenprojektion mit dem PowerShell-WMI-Objektadapter
502
16.9 Beschränkung der Ausgabeliste bei WMI-Objekten
506
16.10 Zugriff auf einzelne Mitglieder von WMI-Klassen
507
16.11 Werte setzen in WMI-Objekten
508
16.12 Umgang mit WMI-Datumsangaben
510
16.13 Methodenaufrufe
511
16.14 Neue WMI-Instanzen erzeugen
512
16.15 Instanzen entfernen
513
16.16 Commandlet Definition XML-Datei (CDXML)
514
17 Dynamische Objekte
518
17.1 Erweitern bestehender Objekte
518
17.2 Komplett dynamische Objekte
520
18 Einbinden von C# und Visual Basic .NET
522
19 Win32-API-Aufrufe
524
20 Benutzereingaben
528
20.1 Read-Host
528
20.2 Benutzerauswahl
529
20.3 Grafischer Eingabedialog
530
20.4 Dialogfenster
531
20.5 Authentifizierungsdialog
531
20.6 Zwischenablage (Clipboard)
533
21 Fehlersuche
534
21.1 Detailinformationen
534
21.2 Einzelschrittmodus
535
21.3 Zeitmessung
536
21.4 Ablaufverfolgung (Tracing)
537
21.5 Erweiterte Protokollierung aktivieren
538
21.6 Script-Debugging in der ISE
540
21.7 Kommandozeilenbasiertes Script-Debugging
540
22 Transaktionen
542
22.1 Commandlets für Transaktionen
542
22.2 Start und Ende einer Transaktion
543
22.3 Zurücksetzen der Transaktion
544
22.4 Mehrere Transaktionen
545
23 Standardeinstellungen ändern mit Profilskripten
546
23.1 Profilpfade
546
23.2 Ausführungsreihenfolge
548
23.3 Beispiel für eine Profildatei
548
23.4 Starten der PowerShell ohne Profilskripte
549
24 Digitale Signaturen für PowerShell-Skripte
550
24.1 Zertifikat erstellen
550
24.2 Skripte signieren
552
24.3 Verwenden signierter Skripte
554
24.4 Mögliche Fehlerquellen
554
25 Hintergrundaufträge („Jobs“)
556
25.1 Voraussetzungen
556
25.2 Architektur
556
25.3 Starten eines Hintergrundauftrags
557
25.4 Hintergrundaufträge abfragen
558
25.5 Warten auf einen Hintergrundauftrag
559
25.6 Abbrechen und Löschen von Aufträgen
559
25.7 Analyse von Fehlermeldungen
559
25.8 Fernausführung von Hintergrundaufträgen
560
25.9 Praxislösung: Einen Job auf mehreren Computern starten
560
26 Geplante Aufgaben und zeitgesteuerte Jobs
562
26.1 Geplante Aufgaben (Scheduled Tasks)
562
26.2 Zeitgesteuerte Jobs
566
27 PowerShell-Workflows
572
27.1 Ein erstes Beispiel
572
27.2 Unterschiede zu einer Function bzw. einem Skript
577
27.3 Einschränkungen bei Workflows
577
27.4 Workflows in der Praxis
579
27.5 Workflows in Visual Studio erstellen
586
28 Ereignissystem
604
28.1 WMI-Ereignisse
604
28.2 WMI-Ereignisabfragen
604
28.3 WMI-Ereignisse seit PowerShell 1.0
606
28.4 Registrieren von WMI-Ereignisquellen seit PowerShell 2.0
607
28.5 Auslesen der Ereignisliste
608
28.6 Reagieren auf Ereignisse
610
28.7 WMI-Ereignisse ab PowerShell- Version 3.0
612
28.8 Registrieren von .NET-Ereignissen
612
28.9 Erzeugen von Ereignissen
613
29 Datenbereiche und Datendateien
616
29.1 Datenbereiche
616
29.2 Datendateien
618
29.3 Mehrsprachigkeit/Lokalisierung
619
30 Desired State Configuration (DSC)
622
30.1 Grundprinzipien
623
30.2 DSC für Linux
623
30.3 Ressourcen
624
30.4 Verfügbare DSC-Ressourcen
624
30.5 Eigenschaften einer Ressource
627
30.6 Aufbau eines DSC-Dokuments
627
30.7 Commandlets für die Arbeit mit DSC
628
30.8 Ein erstes DSC-Beispiel
628
30.9 Kompilieren und Anwendung eines DSC-Dokuments
629
30.10 Variablen in DSC-Dateien
631
30.11 Parameter für DSC-Dateien
632
30.12 Konfigurationsdaten
633
30.13 Entfernen einer DSC-Konfiguration
636
30.14 DSC Pull Server
639
30.15 DSC-Praxislösung 1: IIS installieren
646
30.16 DSC-Praxislösung 2: Software installieren
648
30.17 DSC-Praxislösung 3: Software deinstallieren
650
30.18 Realisierung einer DSC-Ressource
651
30.19 Weitere Möglichkeiten
651
31 PowerShell-Snap-Ins
652
31.1 Einbinden von Snap-Ins
652
31.2 Liste der Commandlets
656
32 PowerShell-Module
658
32.1 Überblick über die Commandlets
658
32.2 Modularchitektur
659
32.3 Aufbau eines Moduls
660
32.4 Module aus dem Netz herunterladen und installieren mit PowerShellGet
661
32.5 Module manuell installieren
667
32.6 Doppeldeutige Namen
668
32.7 Auflisten der verfügbaren Module
669
32.8 Importieren von Modulen
670
32.9 Entfernen von Modulen
673
33 Ausgewählte PowerShell-Erweiterungen
674
33.1 PowerShell-Module in Windows 8.0 und Windows Server 2012
675
33.2 PowerShell-Module in Windows 8.1 und Windows Server 2012 R2
677
33.3 PowerShell-Module in Windows 10 und Windows Server 2019
679
33.4 PowerShell Community Extensions (PSCX)
683
33.5 PowerShellPack
687
33.6 www.IT-Visions.de: PowerShell Extensions
689
33.7 Quest Management Shell for Active Directory
689
33.8 Microsoft Exchange Server
691
33.9 System Center Virtual Machine Manager
692
33.10 PowerShell Management Library for Hyper-V (pshyperv)
692
33.11 Powershell Outlook Account Manager
693
33.12 PowerShell Configurator (PSConfig)
694
33.13 Weitere Erweiterungen
695
34 Delegierte Administration/Just Enough Administration (JEA)
696
34.1 JEA-Konzept
696
34.2 PowerShell-Sitzungskonfiguration erstellen
696
34.3 Sitzungskonfiguration nutzen
699
34.4 Delegierte Administration per Webseite
701
35 Unit Tests mit Pester
702
35.1 Einführung in das Konzept des Unit Testing
702
35.2 Pester installieren
703
35.3 Befehle in Pester
703
35.4 Testen einer PowerShell-Funktion
704
35.5 Testgenerierung
705
35.6 Tests starten
706
35.7 Prüf-Operationen
707
35.8 Mock-Objekte
707
35.9 Test von Dateisystemoperationen
708
36 Tipps und Tricks zur PowerShell
712
36.1 Alle Anzeigen löschen
712
36.2 Befehlsgeschichte
712
36.3 System- und Hostinformationen
713
36.4 Anpassen der Eingabeaufforderung (Prompt)
714
36.5 PowerShell-Befehle aus anderen Anwendungen heraus starten
715
36.6 ISE erweitern
716
36.7 PowerShell für Gruppenrichtlinienskripte
717
36.8 Einblicke in die Interna der Pipeline-Verarbeitung
720
Teil C: PowerShell im Praxiseinsatz
722
37 Dateisystem
724
37.1 Laufwerke
725
37.2 Ordnerinhalte
730
37.3 Dateieigenschaften verändern
734
37.4 Eigenschaften ausführbarer Dateien
735
37.5 Kurznamen
737
37.6 Lange Pfade
737
37.7 Dateisystemoperationen
738
37.8 Praxislösungen: Dateien umorganisieren
738
37.9 Praxislösung: Zufällige Dateisystemstruktur erzeugen
740
37.10 Praxislösung: Leere Ordner löschen
741
37.11 Einsatz von Robocopy
742
37.12 Dateisystemkataloge
745
37.13 Papierkorb leeren
746
37.14 Dateieigenschaften lesen
746
37.15 Praxislösung: Fotos nach Aufnahmedatum sortieren
747
37.16 Datei-Hash
748
37.17 Finden von Duplikaten
749
37.18 Verknüpfungen im Dateisystem
751
37.19 Komprimierung
756
37.20 Dateisystemfreigaben
759
37.21 Überwachung des Dateisystems
770
37.22 Dateiversionsverlauf
771
37.23 Windows Explorer öffnen
772
37.24 Windows Server Backup
772
38 Festplattenverschlüsselung mit BitLocker
774
38.1 Übersicht über das BitLocker-Modul
775
38.2 Verschlüsseln eines Laufwerks
776
39 Dokumente
778
39.1 Textdateien
778
39.2 CSV-Dateien
780
39.3 Analysieren von Textdateien
783
39.4 INI-Dateien
786
39.5 XML-Dateien
786
39.6 HTML- und Markdown-Dateien
796
39.7 JSON-Dateien
799
39.8 Binärdateien
809
39.9 Grafikdateien
810
40 Microsoft Office
812
40.1 Allgemeine Informationen zur Office-Automatisierung per PowerShell
812
40.2 Praxislösung: Terminserien aus Textdateien anlegen in Outlook
813
40.3 Praxislösung: Outlook-Termine anhand von Suchkriterien löschen
815
40.4 Praxislösung: Grafiken aus einem Word-Dokument (DOCX) extrahieren
816
41 Datenbanken
820
41.1 ADO.NET-Grundlagen
820
41.2 Beispieldatenbank
826
41.3 Datenzugriff mit den Bordmitteln der PowerShell
827
41.4 Hilfsfroutinen für den Datenbankzugriff (DBUtil.ps1)
839
41.5 Datenzugriff mit den PowerShell-Erweiterungen
842
41.6 Datenbankzugriff mit SQLPS
846
41.7 Datenbankzugriff mit SQLPSX
846
42 Microsoft-SQL-Server-Administration
848
42.1 PowerShell-Integration im SQL Server Management Studio
849
42.2 SQL-Server-Laufwerk „SQLSERVER:“
850
42.3 Die SQLPS-Commandlets
853
42.4 Die SQL Server Management Objects (SMO)
855
42.5 SQLPSX
858
42.6 Microsoft-SQL-Server-Administration mit der PowerShell in der Praxis
866
43 ODBC-Datenquellen
872
43.1 ODBC-Treiber und -Datenquellen auflisten
873
43.2 Anlegen einer ODBC-Datenquelle
874
43.3 Zugriff auf eine ODBC-Datenquelle
875
44 Registrierungsdatenbank (Registry)
878
44.1 Schlüssel auslesen
878
44.2 Schlüssel anlegen und löschen
879
44.3 Laufwerke definieren
879
44.4 Werte anlegen und löschen
880
44.5 Werte auslesen
881
44.6 Praxislösung: Windows-Explorer-Einstellungen
881
44.7 Praxislösung: Massenanlegen von Registry-Schlüsseln
882
45 Computer- und Betriebssystemverwaltung
884
45.1 Computerinformationen
884
45.2 Versionsnummer des Betriebssystems
886
45.3 Zeitdauer seit dem letzten Start des Betriebssystems
886
45.4 BIOS- und Startinformationen
887
45.5 Windows-Produktaktivierung
888
45.6 Umgebungsvariablen
888
45.7 Schriftarten
891
45.8 Computername und Domäne
892
45.9 Herunterfahren und Neustarten
892
45.10 Windows Updates installieren
893
45.11 Wiederherstellungspunkte verwalten
897
46 Windows Defender
898
47 Hardwareverwaltung
900
47.1 Hardwarebausteine
900
47.2 Plug-and-Play-Geräte
902
47.3 Druckerverwaltung (ältere Betriebssysteme)
902
47.4 Druckerverwaltung (seit Windows 8 und Windows Server 2012)
904
48 Softwareverwaltung
906
48.1 Softwareinventarisierung
906
48.2 Installation von Anwendungen
910
48.3 Deinstallation von Anwendungen
910
48.4 Praxislösung: Installationstest
911
48.5 Praxislösung: Installierte .NET Core SDKs aufräumen
912
48.6 Windows 10 Apps verwalten
918
48.7 Installationen mit PowerShell Package Management („OneGet“)
920
48.8 Versionsnummer ermitteln
923
48.9 Servermanager
925
48.10 Windows-Features installieren auf Windows-Clientbetriebssystemen
935
48.11 Praxislösung: IIS-Installation
938
48.12 Softwareeinschränkungen mit dem PowerShell-Modul „AppLocker“
940
49 Prozessverwaltung
946
49.1 Prozesse auflisten
946
49.2 Prozesse starten
947
49.3 Prozesse mit vollen Administratorrechten starten
948
49.4 Prozesse unter einem anderen Benutzerkonto starten
949
49.5 Prozesse beenden
950
49.6 Warten auf das Beenden einer Anwendung
951
50 Windows-Systemdienste
952
50.1 Dienste auflisten
952
50.2 Dienstzustand ändern
955
50.3 Diensteigenschaften ändern
955
50.4 Dienste hinzufügen
956
50.5 Dienste entfernen
957
51 Netzwerk
958
51.1 Netzwerkkonfiguration
958
51.2 DNS-Client-Konfiguration
963
51.3 DNS-Namensauflösung
967
51.4 Erreichbarkeit prüfen (Ping)
968
51.5 Windows Firewall
969
51.6 Remote Desktop (RDP) einrichten
976
51.7 E-Mails senden (SMTP)
977
51.8 Auseinandernehmen von E-Mail-Adressen
978
51.9 Abruf von Daten von einem HTTP-Server
978
51.10 Praxislösung: Linkprüfer für eine Website
984
51.11 Aufrufe von SOAP-Webdiensten
988
51.12 Aufruf von REST-Diensten
990
51.13 Aufrufe von OData-Diensten
992
51.14 Hintergrunddatentransfer mit BITS
993
52 Ereignisprotokolle (Event Log)
998
52.1 Protokolleinträge auslesen
998
52.2 Ereignisprotokolle erzeugen
1000
52.3 Protokolleinträge erzeugen
1000
52.4 Protokollgröße festlegen
1000
52.5 Protokolleinträge löschen
1000
53 Leistungsdaten (Performance Counter)
1002
53.1 Zugriff auf Leistungsindikatoren über WMI
1002
53.2 Get-Counter
1003
54 Sicherheitseinstellungen
1006
54.1 Aktueller Benutzer
1006
54.2 Grundlagen
1007
54.3 Zugriffsrechtelisten auslesen
1012
54.4 Einzelne Rechteeinträge auslesen
1013
54.5 Besitzer auslesen
1015
54.6 Benutzer und SID
1015
54.7 Hinzufügen eines Rechteeintrags zu einer Zugriffsrechteliste
1018
54.8 Entfernen eines Rechteeintrags aus einer Zugriffsrechteliste
1020
54.9 Zugriffsrechteliste übertragen
1022
54.10 Zugriffsrechteliste über SDDL setzen
1022
54.11 Zertifikate verwalten
1023
55 Optimierungen und Problemlösungen
1026
55.1 PowerShell-Modul „TroubleshootingPack“
1026
55.2 PowerShell-Modul „Best Practices“
1030
56 Active Directory
1032
56.1 Benutzer- und Gruppenverwaltung mit WMI
1033
56.2 Einführung in System.Directory Services
1034
56.3 Basiseigenschaften
1045
56.4 Benutzer- und Gruppenverwaltung im Active Directory
1047
56.5 Verwaltung der Organisationseinheiten
1055
56.6 Suche im Active Directory
1056
56.7 Navigation im Active Directory mit den PowerShell Extensions
1063
56.8 Verwendung der Active-Directory-Erweiterungen von www.IT-Visions.de
1064
56.9 PowerShell-Modul „Active Directory“ (ADPowerShell)
1066
56.10 PowerShell-Modul „ADDSDeployment“
1095
56.11 Informationen über die Active Directory-Struktur
1098
57 Gruppenrichtlinien
1102
57.1 Verwaltung der Gruppenrichtlinien
1103
57.2 Verknüpfung der Gruppenrichtlinien
1104
57.3 Gruppenrichtlinienberichte
1106
57.4 Gruppenrichtlinienvererbung
1108
57.5 Weitere Möglichkeiten
1109
58 Lokale Benutzer und Gruppen
1110
58.1 Modul „Microsoft.PowerShell. LocalAccounts“
1110
58.2 Lokale Benutzerverwaltung in älteren PowerShell-Versionen
1112
59 Microsoft Exchange Server
1114
59.1 Daten abrufen
1114
59.2 Postfächer verwalten
1115
59.3 Öffentliche Ordner verwalten
1116
60 Internet Information Services (IIS)
1118
60.1 Überblick
1118
60.2 Navigationsprovider
1120
60.3 Anlegen von Websites
1122
60.4 Praxislösung: Massenanlegen von Websites
1123
60.5 Ändern von Website-Eigenschaften
1126
60.6 Anwendungspool anlegen
1126
60.7 Virtuelle Verzeichnisse und IIS-Anwendungen
1127
60.8 Website-Zustand ändern
1128
60.9 Anwendungspools starten und stoppen
1128
60.10 Löschen von Websites
1129
61 Virtuelle Systeme mit Hyper-V
1130
61.1 Das Hyper-V-Modul von Microsoft
1131
61.2 Die ersten Schritte mit dem Hyper-V-Modul
1133
61.3 Virtuelle Maschinen anlegen
1137
61.4 Umgang mit virtuellen Festplatten
1143
61.5 Konfiguration virtueller Maschinen
1146
61.6 Dateien kopieren in virtuelle Systeme
1150
61.7 PowerShell Management Library for Hyper-V (für ältere Betriebssysteme)
1151
62 Windows Nano Server
1154
62.1 Das Konzept von Nano Server
1154
62.2 Einschränkungen von Nano Server
1156
62.3 Varianten des Nano Servers
1158
62.4 Installation eines Nano Servers
1158
62.5 Docker-Image
1159
62.6 Fernverwaltung mit PowerShell
1160
62.7 Windows Update auf einem Nano Server
1162
62.8 Nachträgliche Paketinstallation
1162
62.9 Abgespeckter IIS unter Nano Server
1164
62.10 Nano-Serververwaltung aus der Cloud heraus
1165
63 Docker-Container
1166
63.1 Docker-Varianten für Windows
1167
63.2 Docker-Installation auf Windows 10
1168
63.3 Docker-Installation auf Windows Server
1170
63.4 Installation von „Docker for Windows“
1171
63.5 Docker-Registries
1173
63.6 Docker-Images laden
1173
63.7 Container starten
1173
63.8 Container-Identifikation
1175
63.9 Container mit Visual Studio
1176
63.10 Befehle in einem Container ausführen
1178
63.11 Ressourcenbeschränkungen für Container
1181
63.12 Dateien zwischen Container und Host kopieren
1181
63.13 Dockerfile
1181
63.14 Docker-Netzwerke
1182
63.15 Container anlegen, ohne sie zu starten
1183
63.16 Container starten und stoppen
1183
63.17 Container beenden und löschen
1183
63.18 Images löschen
1184
63.19 Images aus Containern erstellen
1184
63.20 .NET Core-Container
1185
63.21 Images verbreiten
1187
63.22 Azure Container Service (ACS)
1189
64 Microsoft Azure
1190
64.1 Azure Konzepte
1190
64.2 Kommandozeilenwerkzeuge für die Azure-Verwaltung
1191
64.3 Benutzeranmeldung und Informationsabfrage
1195
64.4 Azure Ressourcen-Gruppen
1196
64.5 Azure Web Apps
1196
64.6 Azure SQL Server
1198
64.7 Azure Kubernetes Services (AKS)
1199
64.8 Azure DevOps
1223
65 Grafische Benutzeroberflächen (GUI)
1238
65.1 Einfache Nachfragedialoge
1238
65.2 Einfache Eingabe mit Inputbox
1240
65.3 Komplexere Eingabemasken
1240
65.4 Universelle Objektdarstellung
1242
65.5 WPF PowerShell Kit (WPK)
1244
65.6 Direkte Verwendung von WPF
1252
Teil D: Profiwissen – Erweitern der PowerShell
1254
66 Entwicklung von Commandlets in der PowerShell-Skriptsprache
1256
66.1 Aufbau eines skriptbasierten Commandlets
1256
66.2 Verwendung per Dot Sourcing
1258
66.3 Parameterfestlegung
1259
66.4 Fortgeschrittene Funktion (Advanced Function)
1265
66.5 Mehrere Parameter und Parametersätze
1269
66.6 Unterstützung für Sicherheitsabfragen (-whatif und -confirm)
1271
66.7 Kaufmännisches Beispiel: Test-CustomerID
1272
66.8 Erweitern bestehender Commandlets durch Proxy-Commandlets
1276
66.9 Dokumentation
1281
67 Entwicklung eigener Commandlets mit C#
1284
67.1 Technische Voraussetzungen
1285
67.2 Grundkonzept der .NET-basierten Commandlets
1286
67.3 Schrittweise Erstellung eines minimalen Commandlets
1288
67.4 Erstellung eines Commandlets mit einem Rückgabeobjekt
1297
67.5 Erstellung eines Commandlets mit mehreren Rückgabeobjekten
1298
67.6 Erstellen eines Commandlets mit Parametern
1303
67.7 Verarbeiten von Pipeline-Eingaben
1305
67.8 Verkettung von Commandlets
1308
67.9 Fehlersuche in Commandlets
1312
67.10 Statusinformationen
1315
67.11 Unterstützung für Sicherheitsabfragen (-whatif und -confirm)
1320
67.12 Festlegung der Hilfeinformationen
1322
67.13 Erstellung von Commandlets für den Zugriff auf eine Geschäftsanwendung
1327
67.14 Konventionen für Commandlets
1328
67.15 Weitere Möglichkeiten
1330
68 PowerShell-Module erstellen
1332
68.1 Erstellen eines Skriptmoduls
1332
68.2 Praxislösung: Umwandlung einer Skriptdatei in ein Modul
1334
68.3 Erstellen eines Moduls mit Binärdateien
1334
68.4 Erstellen eines Moduls mit Manifest
1335
68.5 Erstellung eines Manifest-Moduls mit Visual Studio
1342
69 Hosting der PowerShell
1344
69.1 Voraussetzungen für das Hosting
1345
69.2 Hosting mit PSHost
1346
69.3 Vereinfachtes Hosting seit PowerShell 2.0
1349
Anhang A: Crashkurs Objektorientierung
1352
Anhang B: Crashkurs .NET
1360
B.1 Was ist das .NET Framework?
1362
B.2 Was ist .NET Core?
1363
B.3 Eigenschaften von .NET
1364
B.4 .NET-Klassen
1365
B.5 Namensgebung von .NET-Klassen (Namensräume)
1365
B.6 Namensräume und Softwarekomponenten
1367
B.7 Bestandteile einer .NET-Klasse
1368
B.8 Vererbung
1369
B.9 Schnittstellen
1369
Anhang C: Literatur
1370
Anhang D: Weitere Informationen im Internet
1374
Anhang E: Abkürzungsverzeichnis
1376
Stichwortverzeichnis
1402