Holger Schwichtenberg
Windows PowerShell 5 und PowerShell Core 6
Das Praxisbuch
Inhalt
6
Vorwort zur sechsten Auflage
24
Über den Autor Dr. Holger Schwichtenberg
30
Teil A: PowerShell-Basiswissen
32
1 Erste Schritte mit der PowerShell
34
1.1 Was ist die PowerShell?
34
1.2 Windows PowerShell versus PowerShell Core
35
1.3 Geschichte der PowerShell
35
1.4 Motivation zur PowerShell
37
1.5 Betriebssysteme mit vorinstallierter PowerShell
40
1.6 Windows PowerShell herunterladen und auf anderen Windows-Betriebssystemen installieren
41
1.7 Die Windows PowerShell testen
45
1.8 PowerShell Core installieren und testen
54
1.9 Woher kommen die Commandlets?
57
1.10 PowerShell Community Extensions (PSCX) herunterladen und installieren
58
1.11 Den Windows PowerShell-Editor „ISE“ verwenden
60
2 Architektur der PowerShell
64
3 Einzelbefehle der PowerShell
68
3.1 Commandlets
68
3.2 Aliase
81
3.3 Ausdrücke
89
3.4 Externe Befehle
90
3.5 Dateinamen
91
4 Hilfefunktionen
94
4.1 Auflisten der verfügbaren Befehle
94
4.2 Volltextsuche
96
4.3 Erläuterungen zu den Befehlen
97
4.4 Hilfe zu Parametern
98
4.5 Hilfe mit Show-Command
100
4.6 Hilfefenster
101
4.7 Allgemeine Hilfetexte
103
4.8 Aktualisieren der Hilfedateien
104
4.9 Online-Hilfe
106
4.10 Fehlende Hilfetexte
107
4.11 Dokumentation der .NET-Klassen
108
5 Objektorientiertes Pipelining
112
5.1 Pipeline-Operator
112
5.2 .NET-Objekte in der Pipeline
113
5.3 Pipeline Processor
115
5.4 Pipelining von Parametern
116
5.5 Pipelining von klassischen Befehlen
119
5.6 Anzahl der Objekte in der Pipeline
120
5.7 Zeilenumbrüche in Pipelines
121
5.8 Zugriff auf einzelne Objekte aus einer Menge
121
5.9 Zugriff auf einzelne Werte in einem Objekt
123
5.10 Methoden ausführen
124
5.11 Analyse des Pipeline-Inhalts
126
5.12 Filtern
138
5.13 Zusammenfassung von Pipeline-Inhalten
141
5.14 „Kastrierung“ von Objekten in der Pipeline
142
5.15 Sortieren
143
5.16 Duplikate entfernen
144
5.17 Gruppierung
145
5.18 Berechnungen
147
5.19 Zwischenschritte in der Pipeline mit Variablen
147
5.20 Verzweigungen in der Pipeline
148
5.21 Vergleiche zwischen Objekten
150
5.22 Zusammenfassung
151
5.23 Praxisbeispiele
152
6 PowerShell-Skripte
154
6.1 Skriptdateien
154
6.2 Start eines Skripts
156
6.3 Aliase für Skripte verwenden
157
6.4 Parameter für Skripte
158
6.5 Skripte dauerhaft einbinden (Dot Sourcing)
159
6.6 Das aktuelle Skriptverzeichnis
160
6.7 Sicherheitsfunktionen für PowerShell-Skripte
160
6.8 Anforderungsdefinitionen von Skripten
163
6.9 Skripte anhalten
163
6.10 Versionierung und Versionsverwaltung von Skripten
164
7 PowerShell-Skriptsprache
166
7.1 Hilfe zur PowerShell-Skriptsprache
166
7.2 Befehlstrennung
167
7.3 Kommentare
167
7.4 Variablen
168
7.5 Variablenbedingungen
178
7.6 Zahlen
179
7.7 Zeichenketten (Strings)
181
7.8 Reguläre Ausdrücke
190
7.9 Datum und Uhrzeit
197
7.10 Arrays
198
7.11 ArrayList
201
7.12 Assoziative Arrays (Hash-Tabellen)
202
7.13 Operatoren
203
7.14 Überblick über die Kontrollkonstrukte
208
7.15 Schleifen
208
7.16 Bedingungen
213
7.17 Unterroutinen (Prozedur/Funktionen)
215
7.18 Eingebaute Funktionen
222
7.19 Fehlerbehandlung
222
7.20 Objektorientiertes Programmieren mit Klassen
230
8 Ausgaben
234
8.1 Ausgabe-Commandlets
234
8.2 Benutzerdefinierte Tabellenformatierung
237
8.3 Benutzerdefinierte Listenausgabe
239
8.4 Mehrspaltige Ausgabe
239
8.5 Out-GridView
240
8.6 Standardausgabe
242
8.7 Einschränkung der Ausgabe
244
8.8 Seitenweise Ausgabe
244
8.9 Ausgabe einzelner Werte
245
8.10 Details zum Ausgabeoperator
247
8.11 Ausgabe von Methodenergebnissen und Unterobjekten in Pipelines
251
8.12 Ausgabe von Methodenergebnissen und Unterobjekten in Zeichenketten
251
8.13 Unterdrückung der Ausgabe
252
8.14 Ausgaben an Drucker
253
8.15 Ausgaben in Dateien
253
8.16 Umleitungen (Redirection)
254
8.17 Fortschrittsanzeige
254
8.18 Sprachausgabe
255
9 Das PowerShell-Navigationsmodell
258
9.1 Einführungsbeispiel: Navigation in der Registrierungsdatenbank
258
9.2 Provider und Laufwerke
259
9.3 Navigationsbefehle
262
9.4 Pfadangaben
262
9.5 Beispiel
264
9.6 Eigene Laufwerke definieren
265
10 Fernausführung (Remoting)
266
10.1 RPC-Fernabfrage ohne WS-Management
267
10.2 Anforderungen an PowerShell Remoting
268
10.3 Rechte für PowerShell-Remoting
269
10.4 Einrichten von PowerShell Remoting
270
10.5 Überblick über die Fernausführungs-Commandlets
272
10.6 Interaktive Fernverbindungen im Telnet-Stil
273
10.7 Fernausführung von Befehlen
274
10.8 Parameterübergabe an die Fernausführung
278
10.9 Fernausführung von Skripten
279
10.10 Ausführung auf mehreren Computern
280
10.11 Sitzungen
281
10.12 Implizites Remoting
286
10.13 Zugriff auf entfernte Computer außerhalb der eigenen Domäne
287
10.14 Verwaltung des WS-Management-Dienstes
290
10.15 PowerShell Direct für Hyper-V
292
10.16 Praxisbeispiel zu PowerShell Direct
294
11 PowerShell-Werkzeuge
298
11.1 PowerShell-Standardkonsole
298
11.2 PowerShell Integrated Scripting Environment (ISE)
307
11.3 PowerShell Script Analyzer
317
11.4 PowerShell Analyzer
323
11.5 PowerShell Tools for Visual Studio
324
11.6 PowerShell Pro Tools for Visual Studio
325
11.7 NuGet Package Manager
326
11.8 PowerShell-Erweiterung für Visual Studio Code
326
11.9 PowerShell Web Access (PSWA)
329
11.10 Azure Cloud Shell
335
11.11 ISE Steroids
335
11.12 PowerShellPlus
336
11.13 PoshConsole
339
11.14 PowerGUI
340
11.15 PrimalScript
341
11.16 PowerShell Help
343
11.17 CIM Explorer for PowerShell ISE
343
11.18 PowerShell Help Reader
344
11.19 PowerShell Remoting
345
12 Windows PowerShell Core 5.1 in Windows Nano Server
346
13 PowerShell Core 6.x für Windows, Linux und MacOS
348
13.1 Funktionsumfang der PowerShell Core
349
13.2 PowerShell Core-Konsole
355
13.3 VSCode-PowerShell
356
13.4 Verwendung auf Linux und MacOS
357
13.5 PowerShell-Remoting via SSH
361
Teil B: PowerShell-Aufbauwissen
364
14 Verwendung von .NET-Klassen
366
14.1 Microsoft Developer Network (MSDN)
366
14.2 Erzeugen von Instanzen
367
14.3 Parameterbehaftete Konstruktoren
369
14.4 Initialisierung von Objekten
370
14.5 Nutzung von Attributen und Methoden
371
14.6 Statische Mitglieder in .NET-Klassen und statische .NET-Klassen
373
14.7 Generische Klassen nutzen
377
14.8 Zugriff auf bestehende Objekte
378
14.9 Laden von Assemblies
378
14.10 Objektanalyse
381
14.11 Auflistungen (Enumerationen)
381
14.12 Verknüpfen von Aufzählungswerten
382
15 Verwendung von COM-Klassen
384
15.1 Erzeugen von COM-Instanzen
384
15.2 Nutzung von Attributen und Methoden
385
15.3 Liste aller COM-Klassen
386
15.4 Holen bestehender COM-Instanzen
387
15.5 Distributed COM (DCOM)
387
16 Zugriff auf die Windows Management Instrumentation (WMI)
388
16.1 Einführung in WMI
388
16.2 WMI in der PowerShell
415
16.3 Open Management Infrastructure (OMI)
417
16.4 Abruf von WMI-Objektmengen
417
16.5 Fernzugriffe
418
16.6 Filtern und Abfragen
418
16.7 Liste aller WMI-Klassen
422
16.8 Hintergrundwissen: WMI-Klassenprojektion mit dem PowerShell-WMI-Objektadapter
423
16.9 Beschränkung der Ausgabeliste bei WMI-Objekten
427
16.10 Zugriff auf einzelne Mitglieder von WMI-Klassen
429
16.11 Werte setzen in WMI-Objekten
429
16.12 Umgang mit WMI-Datumsangaben
431
16.13 Methodenaufrufe
432
16.14 Neue WMI-Instanzen erzeugen
433
16.15 Instanzen entfernen
434
16.16 Commandlet Definition XML-Datei (CDXML)
435
17 Dynamische Objekte
438
17.1 Erweitern bestehender Objekte
438
17.2 Komplett dynamische Objekte
440
18 Einbinden von C# und Visual Basic .NET
442
19 Win32-API-Aufrufe
444
20 Benutzereingaben
448
20.1 Read-Host
448
20.2 Benutzerauswahl
449
20.3 Grafischer Eingabedialog
450
20.4 Dialogfenster
451
20.5 Authentifizierungsdialog
451
20.6 Zwischenablage (Clipboard)
453
21 Fehlersuche
456
21.1 Detailinformationen
456
21.2 Einzelschrittmodus
457
21.3 Zeitmessung
458
21.4 Ablaufverfolgung (Tracing)
459
21.5 Erweiterte Protokollierung aktivieren
460
21.6 Script-Debugging in der ISE
462
21.7 Kommandozeilenbasiertes Script-Debugging
462
22 Transaktionen
464
22.1 Commandlets für Transaktionen
464
22.2 Start und Ende einer Transaktion
465
22.3 Zurücksetzen der Transaktion
466
22.4 Mehrere Transaktionen
467
23 Standardeinstellungen ändern mit Profilskripten
468
23.1 Profilpfade
468
23.2 Ausführungsreihenfolge
470
23.3 Beispiel für eine Profildatei
470
23.4 Starten der PowerShell ohne Profilskripte
471
24 Digitale Signaturen für PowerShell-Skripte
472
24.1 Zertifikat erstellen
472
24.2 Skripte signieren
474
24.3 Verwenden signierter Skripte
475
24.4 Mögliche Fehlerquellen
476
25 Hintergrundaufträge („Jobs“)
478
25.1 Voraussetzungen
478
25.2 Architektur
479
25.3 Starten eines Hintergrundauftrags
479
25.4 Hintergrundaufträge abfragen
480
25.5 Warten auf einen Hintergrundauftrag
481
25.6 Abbrechen und Löschen von Aufträgen
481
25.7 Analyse von Fehlermeldungen
482
25.8 Fernausführung von Hintergrundaufträgen
482
25.9 Praxisbeispiel
483
26 Geplante Aufgaben und zeitgesteuerte Jobs
486
26.1 Geplante Aufgaben (Scheduled Tasks)
486
26.2 Zeitgesteuerte Jobs
490
27 PowerShell-Workflows
496
27.1 Ein erstes Beispiel
496
27.2 Unterschiede zu einer Function bzw. einem Skript
501
27.3 Einschränkungen bei Workflows
501
27.4 Workflows in der Praxis
503
27.5 Workflows in Visual Studio erstellen
510
28 Ereignissystem
528
28.1 WMI-Ereignisse
528
28.2 WMI-Ereignisabfragen
528
28.3 WMI-Ereignisse seit PowerShell 1.0
530
28.4 Registrieren von WMI-Ereignisquellen seit PowerShell 2.0
531
28.5 Auslesen der Ereignisliste
532
28.6 Reagieren auf Ereignisse
534
28.7 WMI-Ereignisse ab PowerShell- Version 3.0
536
28.8 Registrieren von .NET-Ereignissen
536
28.9 Erzeugen von Ereignissen
537
29 Datenbereiche und Datendateien
540
29.1 Datenbereiche
540
29.2 Datendateien
542
29.3 Mehrsprachigkeit/Lokalisierung
543
30 Desired State Configuration (DSC)
546
30.1 Grundprinzipien
547
30.2 DSC für Linux
547
30.3 Ressourcen
548
30.4 Verfügbare DSC-Ressourcen
548
30.5 Eigenschaften einer Ressource
551
30.6 Aufbau eines DSC-Dokuments
551
30.7 Commandlets für die Arbeit mit DSC
552
30.8 Ein erstes DSC-Beispiel
552
30.9 Kompilieren und Anwendung eines DSC-Dokuments
553
30.10 Variablen in DSC-Dateien
555
30.11 Parameter für DSC-Dateien
556
30.12 Konfigurationsdaten
557
30.13 Entfernen einer DSC-Konfiguration
560
30.14 DSC Pull Server
563
30.15 DSC-Praxisbeispiel 1: IIS installieren
571
30.16 DSC-Praxisbeispiel 2: Software installieren
572
30.17 DSC-Praxisbeispiel 3: Software deinstallieren
574
30.18 Realisierung einer DSC-Ressource
575
30.19 Weitere Möglichkeiten
576
31 PowerShell-Snap-Ins
578
31.1 Einbinden von Snap-Ins
578
31.2 Liste der Commandlets
582
32 PowerShell-Module
584
32.1 Überblick über die Commandlets
584
32.2 Modularchitektur
585
32.3 Module aus dem Netz herunterladen und installieren mit PowerShellGet
586
32.4 Module manuell installieren
593
32.5 Doppeldeutige Namen
593
32.6 Auflisten der verfügbaren Module
594
32.7 Importieren von Modulen
596
32.8 Entfernen von Modulen
599
33 Ausgewählte PowerShell-Erweiterungen
600
33.1 PowerShell-Module in Windows 7 und Windows Server 2008 R2
601
33.2 PowerShell-Module in Windows 8.0 und Windows Server 2012
602
33.3 PowerShell-Module in Windows 8.1 und Windows Server 2012 R2
604
33.4 PowerShell-Module in Windows 10 und Windows Server 2016
607
33.5 PowerShell Community Extensions (PSCX)
611
33.6 PowerShellPack
615
33.7 www.IT-Visions.de PowerShell Extensions
616
33.8 Quest Management Shell for Active Directory
617
33.9 Microsoft Exchange Server
618
33.10 System Center Virtual Machine Manager
619
33.11 PowerShell Management Library for Hyper-V (pshyperv)
620
33.12 Powershell Outlook Account Manager
621
33.13 PowerShell Configurator (PSConfig)
622
33.14 Weitere Erweiterungen
623
34 Delegierte Administration/Just Enough Administration (JEA)
624
34.1 JEA-Konzept
624
34.2 PowerShell-Sitzungskonfiguration erstellen
624
34.3 Sitzungskonfiguration nutzen
628
34.4 Delegierte Administration per Webseite
629
35 Tipps und Tricks zur PowerShell
630
35.1 Alle Anzeigen löschen
630
35.2 Befehlsgeschichte
630
35.3 System- und Hostinformationen
631
35.4 Anpassen der Eingabeaufforderung (Prompt)
632
35.5 PowerShell-Befehle aus anderen Anwendungen heraus starten
633
35.6 ISE erweitern
634
35.7 PowerShell für Gruppenrichtlinienskripte
635
35.8 Einblicke in die Interna der Pipeline-Verarbeitung
637
Teil C: PowerShell im Praxiseinsatz
640
36 Dateisystem
642
36.1 Laufwerke
643
36.2 Ordnerinhalte
648
36.3 Dateieigenschaften verändern
650
36.4 Eigenschaften ausführbarer Dateien
651
36.5 Kurznamen
653
36.6 Lange Pfade
653
36.7 Dateisystemoperationen
654
36.8 Praxisbeispiel: Zufällige Dateisystemstruktur erzeugen
655
36.9 Praxisbeispiel: Leere Ordner löschen
656
36.10 Einsatz von Robocopy
657
36.11 Dateisystemkataloge
660
36.12 Papierkorb leeren
661
36.13 Dateieigenschaften lesen
661
36.14 Praxisbeispiel: Fotos nach Aufnahmedatum sortieren
662
36.15 Datei-Hash
663
36.16 Finden von Duplikaten
664
36.17 Verknüpfungen im Dateisystem
666
36.18 Komprimierung
671
36.19 Dateisystemfreigaben
673
36.20 Überwachung des Dateisystems
684
36.21 Dateiversionsverlauf
685
36.22 Windows Explorer öffnen
686
36.23 Windows Server Backup
686
37 Festplattenverschlüsselung mit BitLocker
690
37.1 Übersicht über das BitLocker-Modul
691
37.2 Verschlüsseln eines Laufwerks
692
38 Dokumente
694
38.1 Textdateien
694
38.2 CSV-Dateien
695
38.3 Analysieren von Textdateien
698
38.4 INI-Dateien
701
38.5 XML-Dateien
702
38.6 HTML-Dateien
710
38.7 Binärdateien
710
39 Datenbanken
712
39.1 ADO.NET-Grundlagen
712
39.2 Beispieldatenbank
718
39.3 Datenzugriff mit den Bordmitteln der PowerShell
719
39.4 Datenzugriff mit den PowerShell-Erweiterungen
730
39.5 Datenbankzugriff mit SQLPS
733
39.6 Datenbankzugriff mit SQLPSX
733
40 Microsoft-SQL-Server-Administration
734
40.1 PowerShell-Integration im SQL Server Management Studio
735
40.2 SQL-Server-Laufwerk „SQLSERVER:“
736
40.3 Die SQLPS-Commandlets
739
40.4 Die SQL Server Management Objects (SMO)
741
40.5 SQLPSX
744
40.6 Microsoft-SQL-Server-Administration mit der PowerShell in der Praxis
752
41 ODBC-Datenquellen
758
41.1 ODBC-Treiber und -Datenquellen auflisten
759
41.2 Anlegen einer ODBC-Datenquelle
760
41.3 Zugriff auf eine ODBC-Datenquelle
761
42 Registrierungsdatenbank (Registry)
764
42.1 Schlüssel auslesen
764
42.2 Schlüssel anlegen und löschen
765
42.3 Laufwerke definieren
765
42.4 Werte anlegen und löschen
766
42.5 Werte auslesen
767
42.6 Praxisbeispiel: Windows-Explorer-Einstellungen
767
42.7 Praxisbeispiel: Massenanlegen von Registry-Schlüsseln
768
43 Computer- und Betriebssystemverwaltung
770
43.1 Computerinformationen
770
43.2 Versionsnummer des Betriebssystems
772
43.3 Zeitdauer seit dem letzten Start des Betriebssystems
772
43.4 BIOS- und Startinformationen
773
43.5 Windows-Produktaktivierung
773
43.6 Umgebungsvariablen
773
43.7 Schriftarten
776
43.8 Computername und Domäne
777
43.9 Herunterfahren und Neustarten
777
43.10 Windows Updates installieren
778
43.11 Wiederherstellungspunkte verwalten
782
44 Windows Defender
784
45 Hardwareverwaltung
786
45.1 Hardwarebausteine
786
45.2 Plug-and-Play-Geräte
788
45.3 Druckerverwaltung (ältere Betriebssysteme)
788
45.4 Druckerverwaltung (seit Windows 8 und Windows Server 2012)
789
46 Softwareverwaltung
792
46.1 Softwareinventarisierung
792
46.2 Installation von Anwendungen
795
46.3 Deinstallation von Anwendungen
796
46.4 Praxisbeispiel: Installationstest
796
46.5 Installationen mit PowerShell Package Management („OneGet“)
797
46.6 Versionsnummer ermitteln
800
46.7 Servermanager
801
46.8 Softwareeinschränkungen mit dem PowerShell-Modul „AppLocker“
812
47 Prozessverwaltung
818
47.1 Prozesse auflisten
818
47.2 Prozesse starten
819
47.3 Prozesse mit vollen Administratorrechten starten
820
47.4 Prozesse unter einem anderen Benutzerkonto starten
821
47.5 Prozesse beenden
822
47.6 Warten auf das Beenden einer Anwendung
823
48 Systemdienste
824
48.1 Dienste auflisten
824
48.2 Dienstzustand ändern
826
48.3 Diensteigenschaften ändern
827
49 Netzwerk
828
49.1 Netzwerkkonfiguration (ältere Betriebssysteme)
828
49.2 Netzwerkkonfiguration (ab Windows 8 und Windows Server 2012)
830
49.3 DNS-Client-Konfiguration
833
49.4 DNS-Namensauflösung
836
49.5 Erreichbarkeit prüfen (Ping)
838
49.6 Windows Firewall
839
49.7 Remote Desktop (RDP) einrichten
845
49.8 E-Mails senden (SMTP)
846
49.9 Auseinandernehmen von E-Mail-Adressen
848
49.10 Abruf von Daten von einem HTTP-Server
848
49.11 Praxisbeispiel: Linkprüfer für eine Website
850
49.12 Aufrufe von SOAP-Webdiensten
853
49.13 Aufruf von REST-Diensten
855
49.14 Aufrufe von OData-Diensten
857
49.15 Hintergrunddatentransfer mit BITS
858
50 Ereignisprotokolle (Event Log)
862
51 Leistungsdaten (Performance Counter)
866
51.1 Zugriff auf Leistungsindikatoren über WMI
866
51.2 Get-Counter
867
52 Sicherheitseinstellungen
870
52.1 Aktueller Benutzer
870
52.2 Grundlagen
871
52.3 Zugriffsrechtelisten auslesen
876
52.4 Einzelne Rechteeinträge auslesen
877
52.5 Besitzer auslesen
879
52.6 Benutzer und SID
879
52.7 Hinzufügen eines Rechteeintrags zu einer Zugriffsrechteliste
882
52.8 Entfernen eines Rechteeintrags aus einer Zugriffsrechteliste
885
52.9 Zugriffsrechteliste übertragen
886
52.10 Zugriffsrechteliste über SDDL setzen
887
52.11 Zertifikate verwalten
888
53 Optimierungen und Problemlösungen
892
53.1 PowerShell-Modul „TroubleshootingPack“
892
53.2 PowerShell-Modul „Best Practices“
896
54 Active Directory
898
54.1 Benutzer- und Gruppenverwaltung mit WMI
899
54.2 Einführung in System.DirectoryServices
900
54.3 Basiseigenschaften
911
54.4 Benutzer- und Gruppenverwaltung im Active Directory
913
54.5 Verwaltung der Organisationseinheiten
921
54.6 Suche im Active Directory
922
54.7 Navigation im Active Directory mit den PowerShell Extensions
929
54.8 Verwendung der Active-Directory-Erweiterungen von www.IT-Visions.de
930
54.9 PowerShell-Modul „Active Directory“ (ADPowerShell)
932
54.10 PowerShell-Modul „ADDSDeployment“
955
54.11 Informationen über die Active–Directory-Struktur
957
55 Gruppenrichtlinien
960
55.1 Verwaltung der Gruppenrichtlinien
961
55.2 Verknüpfung der Gruppenrichtlinien
962
55.3 Gruppenrichtlinienberichte
964
55.4 Gruppenrichtlinienvererbung
965
55.5 Weitere Möglichkeiten
966
56 Lokale Benutzer und Gruppen
968
56.1 Modul „Microsoft.PowerShell. LocalAccounts“
968
56.2 Lokale Benutzerverwaltung in älteren PowerShell-Versionen
970
57 Microsoft Exchange Server
972
57.1 Daten abrufen
972
57.2 Postfächer verwalten
973
57.3 Öffentliche Ordner verwalten
974
58 Internet Information Server (IIS)
976
58.1 Überblick
976
58.2 Navigationsprovider
978
58.3 Anlegen von Websites
980
58.4 Praxisbeispiel: Massenanlegen von Websites
981
58.5 Ändern von Website-Eigenschaften
984
58.6 Anwendungspool anlegen
984
58.7 Virtuelle Verzeichnisse und IIS-Anwendungen
985
58.8 Website-Zustand ändern
986
58.9 Anwendungspools starten und stoppen
986
58.10 Löschen von Websites
987
59 Virtuelle Systeme mit Hyper-V
988
59.1 Das Hyper-V-Modul von Microsoft
989
59.2 Die ersten Schritte mit dem Hyper-V-Modul
991
59.3 Virtuelle Maschinen anlegen
995
59.4 Umgang mit virtuellen Festplatten
1001
59.5 Konfiguration virtueller Maschinen
1004
59.6 Dateien kopieren in virtuelle Systeme
1008
59.7 PowerShell Management Library for Hyper-V (für ältere Betriebssysteme)
1010
60 Windows Nano Server
1014
60.1 Das Konzept von Nano Server
1014
60.2 Einschränkungen von Nano Server
1016
60.3 Varianten des Nano Servers
1018
60.4 Installation eines Nano Servers
1018
60.5 Docker-Image
1020
60.6 Fernverwaltung mit PowerShell
1020
60.7 Windows Update auf einem Nano Server
1023
60.8 Nachträgliche Paketinstallation
1023
60.9 Abgespeckter IIS unter Nano Server
1025
60.10 Nano-Serververwaltung aus der Cloud heraus
1026
61 Docker-Container
1028
61.1 Docker-Varianten für Windows
1029
61.2 Docker-Installation auf Windows 10
1030
61.3 Docker-Installation auf Windows Server 2016
1032
61.4 Installation von „Docker for Windows“
1033
61.5 Docker-Registries
1035
61.6 Docker-Images laden
1035
61.7 Container starten
1036
61.8 Container-Identifikation
1037
61.9 Container mit Visual Studio
1038
61.10 Befehle in einem Container ausführen
1040
61.11 Ressourcenbeschränkungen für Container
1042
61.12 Dateien zwischen Container und Host kopieren
1042
61.13 Dockerfile
1042
61.14 Docker-Netzwerke
1043
61.15 Container anlegen, ohne sie zu starten
1044
61.16 Container starten und stoppen
1044
61.17 Container beenden und löschen
1044
61.18 Images löschen
1045
61.19 Images aus Containern erstellen
1045
61.20 .NET Core-Container
1045
61.21 Images verbreiten
1048
61.22 Azure Container Service (ACS)
1050
62 Grafische Benutzeroberflächen (GUI)
1052
62.1 Einfache Nachfragedialoge
1052
62.2 Einfache Eingabe mit Inputbox
1054
62.3 Komplexere Eingabemasken
1055
62.4 Universelle Objektdarstellung
1057
62.5 WPF PowerShell Kit (WPK)
1058
62.6 Direkte Verwendung von WPF
1066
Teil D: Profiwissen – Erweitern der PowerShell
1068
63 Entwicklung von Commandlets in der PowerShell-Skriptsprache
1070
63.1 Aufbau eines skriptbasierten Commandlets
1070
63.2 Verwendung per Dot Sourcing
1072
63.3 Parameterfestlegung
1073
63.4 Fortgeschrittene Funktion (Advanced Function)
1079
63.5 Mehrere Parameter und Parametersätze
1081
63.6 Unterstützung für Sicherheitsabfragen (-whatif und -confirm)
1083
63.7 Kaufmännisches Beispiel: Test-CustomerID
1085
63.8 Erweitern bestehender Commandlets durch Proxy-Commandlets
1088
63.9 Dokumentation
1094
64 Entwicklung eigener Commandlets mit C#
1098
64.1 Technische Voraussetzungen
1099
64.2 Grundkonzept der .NET-basierten Commandlets
1100
64.3 Schrittweise Erstellung eines minimalen Commandlets
1102
64.4 Erstellung eines Commandlets mit einem Rückgabeobjekt
1110
64.5 Erstellung eines Commandlets mit mehreren Rückgabeobjekten
1112
64.6 Erstellen eines Commandlets mit Parametern
1116
64.7 Verarbeiten von Pipeline-Eingaben
1118
64.8 Verkettung von Commandlets
1121
64.9 Fehlersuche in Commandlets
1125
64.10 Statusinformationen
1128
64.11 Unterstützung für Sicherheitsabfragen (-whatif und -confirm)
1133
64.12 Festlegung der Hilfeinformationen
1135
64.13 Erstellung von Commandlets für den Zugriff auf eine Geschäftsanwendung
1139
64.14 Konventionen für Commandlets
1140
64.15 Weitere Möglichkeiten
1142
65 PowerShell-Module erstellen
1144
65.1 Erstellen eines Skriptmoduls
1144
65.2 Praxisbeispiel: Umwandlung einer Skriptdatei in ein Modul
1146
65.3 Erstellen eines Moduls mit Binärdateien
1146
65.4 Erstellen eines Moduls mit Manifest
1147
65.5 Erstellung eines Manifest-Moduls mit Visual Studio
1154
66 Hosting der PowerShell
1156
66.1 Voraussetzungen für das Hosting
1157
66.2 Hosting mit PSHost
1158
66.3 Vereinfachtes Hosting seit PowerShell 2.0
1161
Anhang A: Crashkurs „Objektorientierung“
1164
Anhang B: Crashkurs .NET
1172
B.1 Was ist das .NET Framework?
1174
B.2 Was ist .NET Core?
1175
B.3 Eigenschaften von .NET
1176
B.4 .NET-Klassen
1177
B.5 Namensgebung von .NET-Klassen -(Namensräume)
1177
B.6 Namensräume und Software-komponenten
1179
B.7 Bestandteile einer .NET-Klasse
1180
B.8 Vererbung
1181
B.9 Schnittstellen
1182
Anhang C: Literatur
1183
Anhang D: Weitere Informationen im Internet
1186
Anhang E: Abkürzungsverzeichnis
1188
Stichwortverzeichnis
1214
© 2009-2024 ciando GmbH