Erhalten Sie Zugang zu diesem und mehr als 300000 Büchern ab EUR 5,99 monatlich.
Das Windows PowerShell-Praxisbuch für Einsteiger und Profis
Administratoren bietet diese aktualisierte und erweiterte Neuauflage eine kompakte Darstellung der vielfältigen Einsatzmöglichkeiten der PowerShell sowie ergänzender Commandlet- und Klassenbibliotheken. Sie enthält über 2.000 Code-Beispiele und beschreibt 640 Commandlets für die kommandozeilenbasierte Administration und das Scripting in Windows, Linux und MacOS.
Profitieren Sie vom Know-how des .NET- und Scripting-Experten Dr. Holger Schwichtenberg
In Teil 1 und 2 des Buches erhalten Sie eine strukturierte Einführung in die Konzepte der PowerShell und lernen dann in Teil 3, wie Sie PowerShell in zahlreichen Anwendungsgebieten praktisch einsetzen. Fortgeschrittene Administratoren erfahren schließlich in Teil 4, wie Sie die PowerShell erweitern können, u. a. durch die Entwicklung eigener Commandlets.
- Diese 2. Auflage behandelt Windows PowerShell 5 und PowerShell Core 6, kann aber auch für die Vorgängerversionen verwendet werden; die Unterschiede sind im Buch beschrieben. Zusätzlich aufgenommen wurden die Themen Docker-Verwaltung mit PowerShell, PowerShell mit Windows Nano Server.
- Berücksichtigt werden alle Windows-Versionen ab Windows XP bzw. Windows Server 2003 einschließlich der neuesten Versionen Windows 10 und Windows Server 2016
- Codebeispiele, PowerShell-Kurzreferenz, Feedbackmöglichkeiten und Forum finden Sie auf der Website zum Buch.
Sie lesen das E-Book in den Legimi-Apps auf:
Seitenzahl: 994
Veröffentlichungsjahr: 2018
Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:
Holger Schwichtenberg
Windows PowerShell 5 und PowerShell Core 6
Das Praxisbuch
Der Autor:
Dr. Holger Schwichtenberg, Essen www.IT-Visions.de
Alle in diesem Buch enthaltenen Informationen, Verfahren und Darstellungen wurden nach bestem Wissen zusammengestellt und mit Sorgfalt getestet. Dennoch sind Fehler nicht ganz auszuschließen. Aus diesem Grund sind die im vorliegenden Buch enthaltenen Informationen mit keiner Verpflichtung oder Garantie irgendeiner Art verbunden. Autor und Verlag übernehmen infolgedessen keine juristische Verantwortung und werden keine daraus folgende oder sonstige Haftung übernehmen, die auf irgendeine Art aus der Benutzung dieser Informationen – oder Teilen davon – entsteht.
Ebenso übernehmen Autor und Verlag keine Gewähr dafür, dass beschriebene Verfahren usw. frei von Schutzrechten Dritter sind. Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Buch berechtigt deshalb auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen und MarkenschutzGesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden dürften.
Bibliografische Information der Deutschen Nationalbibliothek: Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar.
Dieses Werk ist urheberrechtlich geschützt. Alle Rechte, auch die der Übersetzung, des Nachdruckes und der Vervielfältigung des Buches, oder Teilen daraus, vorbehalten. Kein Teil des Werkes darf ohne schriftliche Genehmigung des Verlages in irgendeiner Form (Fotokopie, Mikrofilm oder ein anderes Verfahren) – auch nicht für Zwecke der Unterrichtsgestaltung – reproduziert oder unter Verwendung elektronischer Systeme verarbeitet, vervielfältigt oder verbreitet werden.
© 2018 Carl Hanser Verlag Münchenwww.hanser-fachbuch.de
Lektorat: Sylvia Hasselbach Copyediting: Sandra Gottmann, Nienberge Umschlagdesign: Marc Müller-Bremer, www.rebranding.de, München Umschlagrealisation: Stephan Rönigk
Print-ISBN 978-3-446-45331-9 E-Book-ISBN 978-3-446-45397-5
Verwendete Schriften: SourceSansPro und SourceCodePro (Lizenz) CSS-Version: 1.0
Titelei
Impressum
Inhalt
Vorwort zur sechsten Auflage
Wer bin ich?
Wer sind Sie?
Was ist neu in diesem Buch?
Sind in diesem Buch alle Features der PowerShell beschrieben?
Wie aktuell ist dieses Buch?
Wem ist zu danken?
Woher bekommen Sie die Beispiele aus diesem Buch?
Wie sind die Programmcodebeispiele organisiert?
Wo können Sie sich schulen oder beraten lassen?
Zum Schluss des Vorworts ...
Über den Autor Dr. Holger Schwichtenberg
Teil A: PowerShell-Basiswissen
1 Erste Schritte mit der PowerShell
1.1 Was ist die PowerShell?
1.2 Windows PowerShell versus PowerShell Core
1.3 Geschichte der PowerShell
1.4 Motivation zur PowerShell
1.5 Betriebssysteme mit vorinstallierter PowerShell
1.6 Windows PowerShell herunterladen und auf anderen Windows-Betriebssystemen installieren
Installationsordner
Ereignisprotokoll „PowerShell“
Deinstallation
1.7 Die Windows PowerShell testen
1.7.1 PowerShell im interaktiven Modus
1.7.2 Installierte Version ermitteln
1.7.3 PowerShell im Skriptmodus
1.7.4 Skript eingeben
1.7.5 Skript starten
1.7.6 Skriptausführungsrichtlinie ändern
1.7.7 Farben ändern
1.8 PowerShell Core installieren und testen
1.8.1 Installation und Test auf Windows
1.8.2 Installation und Test auf Ubuntu Linux
1.8.3 Installation und Test auf MacOS
1.9 Woher kommen die Commandlets?
1.10 PowerShell Community Extensions (PSCX) herunterladen und installieren
1.11 Den Windows PowerShell-Editor „ISE“ verwenden
2 Architektur der PowerShell
3 Einzelbefehle der PowerShell
3.1 Commandlets
3.1.1 Aufbau eines Commandlets
3.1.2 Aufruf von Commandlets
3.1.3 Commandlet-Parameter
3.1.4 Platzhalter bei den Parameterwerten
3.1.5 Abkürzungen für Parameter
3.1.6 Allgemeine Parameter (Common Parameters)
3.1.7 Dynamische Parameter
3.1.8 Zeilenumbrüche
3.1.9 PowerShell-Module
3.1.10 Prozessmodell
3.1.11 Aufruf von Commandlets aus anderen Prozessen heraus
3.1.12 Namenskonventionen
3.2 Aliase
3.2.1 Aliase auflisten
3.2.2 Neue Aliase anlegen
3.2.3 Aliase für Eigenschaften
3.3 Ausdrücke
3.4 Externe Befehle
3.5 Dateinamen
4 Hilfefunktionen
4.1 Auflisten der verfügbaren Befehle
4.2 Volltextsuche
4.3 Erläuterungen zu den Befehlen
4.4 Hilfe zu Parametern
4.5 Hilfe mit Show-Command
4.6 Hilfefenster
4.7 Allgemeine Hilfetexte
4.8 Aktualisieren der Hilfedateien
4.9 Online-Hilfe
4.10 Fehlende Hilfetexte
4.11 Dokumentation der .NET-Klassen
5 Objektorientiertes Pipelining
5.1 Pipeline-Operator
5.2 .NET-Objekte in der Pipeline
5.3 Pipeline Processor
5.4 Pipelining von Parametern
5.5 Pipelining von klassischen Befehlen
5.6 Anzahl der Objekte in der Pipeline
5.7 Zeilenumbrüche in Pipelines
5.8 Zugriff auf einzelne Objekte aus einer Menge
5.9 Zugriff auf einzelne Werte in einem Objekt
Einzelne Werte aus allen Objekten einer Objektmenge
5.10 Methoden ausführen
5.11 Analyse des Pipeline-Inhalts
Methode ToString()
Methode GetType()
Get-PipelineInfo
Get-Member
Methoden (Mitgliedsart Method)
Eigenschaften (Mitgliedsart Property)
Eigenschaftssätze (PropertySet)
Notizeigenschaften (NoteProperty)
Skripteigenschaften (ScriptProperty)
Codeeigenschaften (Code Property)
Aliaseigenschaft (AliasProperty)
Hintergrundwissen: Extended Type System (ETS)
5.12 Filtern
Vereinfachte Schreibweise von Bedingungen seit PowerShell-Version 3.0
5.13 Zusammenfassung von Pipeline-Inhalten
5.14 „Kastrierung“ von Objekten in der Pipeline
5.15 Sortieren
5.16 Duplikate entfernen
Praxisbeispiel: Microsoft-Office-Wörterbücher zusammenfassen
5.17 Gruppierung
Praxisbeispiel
5.18 Berechnungen
5.19 Zwischenschritte in der Pipeline mit Variablen
5.20 Verzweigungen in der Pipeline
Tee-Object
Parameter -OutVariable
Parameter -PipelineVariable
Beispiel 1
Beispiel 2
5.21 Vergleiche zwischen Objekten
5.22 Zusammenfassung
5.23 Praxisbeispiele
6 PowerShell-Skripte
6.1 Skriptdateien
Beispiel
6.2 Start eines Skripts
6.3 Aliase für Skripte verwenden
6.4 Parameter für Skripte
6.5 Skripte dauerhaft einbinden (Dot Sourcing)
6.6 Das aktuelle Skriptverzeichnis
6.7 Sicherheitsfunktionen für PowerShell-Skripte
Mögliche Sicherheitsrichtlinien
Hintergründe
6.8 Anforderungsdefinitionen von Skripten
6.9 Skripte anhalten
6.10 Versionierung und Versionsverwaltung von Skripten
6.10.1 Versionierung
6.10.2 Versionsverwaltung (Versionskontrolle)
7 PowerShell-Skriptsprache
7.1 Hilfe zur PowerShell-Skriptsprache
7.2 Befehlstrennung
7.3 Kommentare
7.4 Variablen
7.4.1 Variablen in der PowerShell
7.4.2 Typisierung
7.4.3 Datentypen/Typbezeichner in PowerShell
7.4.4 Typisierungszwang
7.4.5 Typkonvertierung (Typumwandlung)
7.4.6 Gültigkeitsbereiche (Scope)
7.4.7 Variablen leeren oder löschen
7.4.8 Variablentyp ermitteln
7.4.9 Vordefinierte Variablen
7.5 Variablenbedingungen
7.6 Zahlen
7.7 Zeichenketten (Strings)
7.7.1 Zeichenkettenliterale
7.7.2 Zeichenketten zusammensetzen
7.7.3 Variablenauflösung in Zeichenketten
7.7.4 Wiederholte Zeichenketten
7.7.5 Leere Zeichenketten
7.7.6 Sonderzeichen in Zeichenketten
7.7.7 Bearbeitungsmöglichkeiten für Zeichenketten
7.7.8 Zeichenketten ersetzen
7.7.9 Zeichenketten trennen und verbinden
7.8 Reguläre Ausdrücke
7.8.1 Mustervergleichsoperatoren
7.8.2 Allgemeiner Aufbau von regulären Ausdrücken
7.9 Datum und Uhrzeit
7.10 Arrays
7.10.1 Deklaration
7.10.2 Arrayoperationen
7.10.3 Array auflisten
7.10.4 Arrays verbinden
7.10.5 Mehrdimensionale Arrays
7.11 ArrayList
7.12 Assoziative Arrays (Hash-Tabellen)
7.13 Operatoren
7.13.1 Vergleichsoperatoren
7.13.2 Arithmetische Operatoren
7.13.3 Zuweisungsoperator
7.13.4 Bit-Operatoren
7.13.5 Aufrufoperator
7.14 Überblick über die Kontrollkonstrukte
7.15 Schleifen
7.16 Bedingungen
7.17 Unterroutinen (Prozedur/Funktionen)
7.17.1 Prozedur versus Funktion
7.17.2 Prozeduren
7.17.3 Funktionen (mit Rückgabewerten)
7.17.4 Art der Rückgabewerte
7.17.5 Parameterübergabe
7.18 Eingebaute Funktionen
7.19 Fehlerbehandlung
7.20 Objektorientiertes Programmieren mit Klassen
8 Ausgaben
8.1 Ausgabe-Commandlets
8.2 Benutzerdefinierte Tabellenformatierung
Praxisbeispiel 1: Laufende Prozesse
Praxisbeispiel 2: Verfügbare PowerShell-Module
8.3 Benutzerdefinierte Listenausgabe
8.4 Mehrspaltige Ausgabe
8.5 Out-GridView
Suchen
8.6 Standardausgabe
8.7 Einschränkung der Ausgabe
8.8 Seitenweise Ausgabe
8.9 Ausgabe einzelner Werte
8.10 Details zum Ausgabeoperator
8.11 Ausgabe von Methodenergebnissen und Unterobjekten in Pipelines
8.12 Ausgabe von Methodenergebnissen und Unterobjekten in Zeichenketten
8.13 Unterdrückung der Ausgabe
8.14 Ausgaben an Drucker
8.15 Ausgaben in Dateien
8.16 Umleitungen (Redirection)
8.17 Fortschrittsanzeige
8.18 Sprachausgabe
9 Das PowerShell-Navigationsmodell
9.1 Einführungsbeispiel: Navigation in der Registrierungsdatenbank
9.2 Provider und Laufwerke
9.3 Navigationsbefehle
9.4 Pfadangaben
9.5 Beispiel
9.6 Eigene Laufwerke definieren
10 Fernausführung (Remoting)
10.1 RPC-Fernabfrage ohne WS-Management
10.2 Anforderungen an PowerShell Remoting
10.3 Rechte für PowerShell-Remoting
10.4 Einrichten von PowerShell Remoting
10.5 Überblick über die Fernausführungs-Commandlets
10.6 Interaktive Fernverbindungen im Telnet-Stil
Möglichkeiten einer Fernsitzung
10.7 Fernausführung von Befehlen
10.8 Parameterübergabe an die Fernausführung
10.9 Fernausführung von Skripten
10.10 Ausführung auf mehreren Computern
Abbrechen eines Fernbefehls
10.11 Sitzungen
10.11.1 Commandlets zur Sitzungsverwaltung
10.11.2 Sitzungen erstellen
10.11.3 Kopieren von Dateien in Sitzungen
10.11.4 Schließen von Sitzungen
10.11.5 Sitzungskonfigurationen
10.11.6 Zugriffsrechte für Fernaufrufe
10.12 Implizites Remoting
10.13 Zugriff auf entfernte Computer außerhalb der eigenen Domäne
Herleitung des Problems
Eintrag in die Liste vertrauter Systeme
Ausführen von Befehlen auf entfernten Computern außerhalb der eigenen Domäne
10.14 Verwaltung des WS-Management-Dienstes
10.15 PowerShell Direct für Hyper-V
10.16 Praxisbeispiel zu PowerShell Direct
11 PowerShell-Werkzeuge
11.1 PowerShell-Standardkonsole
11.1.1 Funktionsumfang der Standardkonsole
11.1.2 Kopieren und Einfügen (Copy/Paste)
11.1.3 Tabulatorvervollständigung
11.1.4 Farbe in der Konsole ab Windows 10/Windows Server 2016 mit PSReadline
11.1.5 Form der Eingabeunterstützung
11.1.6 Kommandomodus versus Interpretermodus
11.1.7 Zeilenumbrüche in Befehlen
11.1.8 Benutzerkontensteuerung/Administratorrechte
11.1.9 Feststellen, unter welchen Rechten die PowerShell wirklich läuft
11.1.10 Starten als „Administrator“
11.2 PowerShell Integrated Scripting Environment (ISE)
11.2.1 Start der ISE
11.2.2 Konsolenbereich
11.2.3 Skriptbereich
11.2.4 ISE-Skriptdebugger
11.2.5 Unterschiede zur normalen PowerShell-Konsole
11.2.6 Remote PowerShell mit der PowerShell ISE
11.2.7 Fernbearbeitung von Dateien mit psedit
11.2.8 ISE Praxistipp: Zuklappbare Bereiche und Regionen
11.3 PowerShell Script Analyzer
Regeln des Script Analyzers
Commandlets des Script Analyzers
Einsatzbeispiele
11.4 PowerShell Analyzer
11.5 PowerShell Tools for Visual Studio
11.6 PowerShell Pro Tools for Visual Studio
11.7 NuGet Package Manager
11.8 PowerShell-Erweiterung für Visual Studio Code
11.9 PowerShell Web Access (PSWA)
Installation von PSWA
Schritt 1: Installation der Rollen und Features
Schritt 2: Anlegen der Webanwendung im IIS
Schritt 3: Zugriffsrechte vergeben
Schritt 4: Konfigurationsänderungen (optional)
Anmelden an PSWA
Verwenden der PSWA
11.10 Azure Cloud Shell
11.11 ISE Steroids
11.12 PowerShellPlus
11.13 PoshConsole
11.14 PowerGUI
11.15 PrimalScript
11.16 PowerShell Help
11.17 CIM Explorer for PowerShell ISE
11.18 PowerShell Help Reader
11.19 PowerShell Remoting
12 Windows PowerShellCore 5.1 in Windows NanoServer
13 PowerShellCore 6.x für Windows,Linux undMacOS
13.1 Funktionsumfang der PowerShell Core
13.1.1 PowerShell-Kern-Befehle, die in PowerShell Core fehlen
13.1.2 Befehle, die zusätzlich unter Linux und MacOS fehlen
13.1.3 Erweiterungsmodule
13.1.4 Änderungen der Parameter von PowerShell.exe
13.1.5 Neue Funktionen der PowerShell Core
13.2 PowerShell Core-Konsole
13.3 VSCode-PowerShell
13.4 Verwendung auf Linux und MacOS
13.4.1 Praxisbeispiel: einen klassischen Linux-Befehl in der PowerShell-Pipeline verwenden
13.4.2 Praxisbeispiel: Dateien unter Linux und MacOS verstecken und versteckte Dateien auflisten
13.5 PowerShell-Remoting via SSH
Teil B: PowerShell-Aufbauwissen
14 Verwendung von .NET-Klassen
14.1 Microsoft Developer Network (MSDN)
14.2 Erzeugen von Instanzen
Konstruktorfunktion new() seit PowerShell 5.0
Praxisbeispiel
14.3 Parameterbehaftete Konstruktoren
14.4 Initialisierung von Objekten
14.5 Nutzung von Attributen und Methoden
14.6 Statische Mitglieder in .NET-Klassen und statische .NET-Klassen
14.7 Generische Klassen nutzen
14.8 Zugriff auf bestehende Objekte
14.9 Laden von Assemblies
Beispiel 1
Beispiel 2:
Laden bereits geladener Assemblies
Liste der geladenen Assemblies
14.10 Objektanalyse
14.11 Auflistungen (Enumerationen)
14.12 Verknüpfen von Aufzählungswerten
15 Verwendung von COM-Klassen
15.1 Erzeugen von COM-Instanzen
15.2 Nutzung von Attributen und Methoden
15.3 Liste aller COM-Klassen
15.4 Holen bestehender COM-Instanzen
15.5 Distributed COM (DCOM)
16 Zugriff auf die Windows ManagementInstrumentation (WMI)
16.1 Einführung in WMI
Was ist WMI?
Versionszählung
WMI-Funktionsumfang
WMI-Klassen und WMI-Objekte
Arten von WMI-Klassen
Besondere Klassenformen
Klassenmitglieder
Schlüsselattribute
Systemattribute
Metadaten mit Qualifizierer (Qualifier)
Objektassoziationen
WMI-Namensräume (Namespaces)
Lokalisierung
WMI-Pfade
WMI-Schema
WMI-Repository
WMI-Systemdienst
WMI-Netzwerkprotokoll
WMI-Provider
Managed Object Format (MOF)
WMI-Sicherheit
WMI-Ereignissystem
WMI-Ereigniskonsumenten
WMI Query Language (WQL)
Typen von WQL-Anfragen
Datenabfragen (Data Queries)
Schemaabfragen (Schema Queries)
Ereignisabfragen (Event Queries)
WMI-Werkzeuge
WMI Object Browser
Weitere Werkzeuge
WMI-Programmierschnittstellen
WMI API in der System.Management.dll
Management Infrastructure API in der System.Management.Infrastructure.dll
Weitere Neuerungen in WMI Version 2
16.2 WMI in der PowerShell
16.3 Open Management Infrastructure (OMI)
16.4 Abruf von WMI-Objektmengen
16.5 Fernzugriffe
16.6 Filtern und Abfragen
Filtern mit Get-WmiObject
Zugriff auf einzelne WMI-Objekte
WQL-Abfragen
16.7 Liste aller WMI-Klassen
16.8 Hintergrundwissen: WMI-Klassenprojektion mit dem PowerShell-WMI-Objektadapter
16.9 Beschränkung der Ausgabeliste bei WMI-Objekten
16.10 Zugriff auf einzelne Mitglieder von WMI-Klassen
16.11 Werte setzen in WMI-Objekten
16.12 Umgang mit WMI-Datumsangaben
Konvertierung des WMI-Formats in normale Datumsobjekte
16.13 Methodenaufrufe
Invoke-WmiMethod
Weitere Beispiele
Invoke-CimMethod
16.14 Neue WMI-Instanzen erzeugen
16.15 Instanzen entfernen
16.16 Commandlet Definition XML-Datei (CDXML)
Praxisbeispiel: WMI-Klassenstatistik
17 Dynamische Objekte
17.1 Erweitern bestehender Objekte
17.2 Komplett dynamische Objekte
18 Einbinden von C# und Visual Basic .NET
19 Win32-API-Aufrufe
20 Benutzereingaben
20.1 Read-Host
20.2 Benutzerauswahl
20.3 Grafischer Eingabedialog
20.4 Dialogfenster
20.5 Authentifizierungsdialog
20.6 Zwischenablage (Clipboard)
21 Fehlersuche
21.1 Detailinformationen
21.2 Einzelschrittmodus
21.3 Zeitmessung
21.4 Ablaufverfolgung (Tracing)
21.4.1 Tracesources
21.4.2 Verfolgung eines Einzelbefehls
21.4.3 Generelle Ablaufverfolgung
21.5 Erweiterte Protokollierung aktivieren
21.6 Script-Debugging in der ISE
21.7 Kommandozeilenbasiertes Script-Debugging
22 Transaktionen
22.1 Commandlets für Transaktionen
22.2 Start und Ende einer Transaktion
22.3 Zurücksetzen der Transaktion
22.4 Mehrere Transaktionen
23 Standardeinstellungen ändern mit Profilskripten
23.1 Profilpfade
23.2 Ausführungsreihenfolge
23.3 Beispiel für eine Profildatei
23.4 Starten der PowerShell ohne Profilskripte
24 Digitale Signaturen für PowerShell-Skripte
24.1 Zertifikat erstellen
24.2 Skripte signieren
24.3 Verwenden signierter Skripte
24.4 Mögliche Fehlerquellen
25 Hintergrundaufträge („Jobs“)
25.1 Voraussetzungen
25.2 Architektur
25.3 Starten eines Hintergrundauftrags
25.4 Hintergrundaufträge abfragen
25.5 Warten auf einen Hintergrundauftrag
25.6 Abbrechen und Löschen von Aufträgen
25.7 Analyse von Fehlermeldungen
25.8 Fernausführung von Hintergrundaufträgen
25.9 Praxisbeispiel
26 Geplante Aufgaben und zeitgesteuerte Jobs
26.1 Geplante Aufgaben (Scheduled Tasks)
26.2 Zeitgesteuerte Jobs
27 PowerShell-Workflows
27.1 Ein erstes Beispiel
27.2 Unterschiede zu einer Function bzw. einem Skript
27.3 Einschränkungen bei Workflows
27.4 Workflows in der Praxis
27.5 Workflows in Visual Studio erstellen
28 Ereignissystem
28.1 WMI-Ereignisse
28.2 WMI-Ereignisabfragen
28.3 WMI-Ereignisse seit PowerShell 1.0
28.4 Registrieren von WMI-Ereignisquellen seit PowerShell 2.0
28.5 Auslesen der Ereignisliste
28.6 Reagieren auf Ereignisse
28.7 WMI-Ereignisse ab PowerShell-Version 3.0
28.8 Registrieren von .NET-Ereignissen
28.9 Erzeugen von Ereignissen
29 Datenbereiche und Datendateien
29.1 Datenbereiche
29.2 Datendateien
29.3 Mehrsprachigkeit/Lokalisierung
30 Desired State Configuration (DSC)
30.1 Grundprinzipien
30.2 DSC für Linux
30.3 Ressourcen
30.4 Verfügbare DSC-Ressourcen
30.5 Eigenschaften einer Ressource
30.6 Aufbau eines DSC-Dokuments
30.7 Commandlets für die Arbeit mit DSC
30.8 Ein erstes DSC-Beispiel
30.9 Kompilieren und Anwendung eines DSC-Dokuments
30.10 Variablen in DSC-Dateien
30.11 Parameter für DSC-Dateien
30.12 Konfigurationsdaten
30.13 Entfernen einer DSC-Konfiguration
30.14 DSC Pull Server
30.14.1 Einrichten des DSC Pull Servers
30.14.2 Einrichten der Clients
30.14.3 Bereitstellen von DSC-Konfigurationen für Clients
30.14.4 Diagnose
30.15 DSC-Praxisbeispiel 1: IIS installieren
30.16 DSC-Praxisbeispiel 2: Software installieren
30.17 DSC-Praxisbeispiel 3: Software deinstallieren
30.18 Realisierung einer DSC-Ressource
30.19 Weitere Möglichkeiten
31 PowerShell-Snap-Ins
31.1 Einbinden von Snap-Ins
31.2 Liste der Commandlets
32 PowerShell-Module
32.1 Überblick über die Commandlets
32.2 Modularchitektur
32.3 Module aus dem Netz herunterladen und installieren mit PowerShellGet
32.4 Module manuell installieren
32.5 Doppeldeutige Namen
32.6 Auflisten der verfügbaren Module
32.7 Importieren von Modulen
32.8 Entfernen von Modulen
33 Ausgewählte PowerShell-Erweiterungen
33.1 PowerShell-Module in Windows 7 und Windows Server 2008 R2
33.2 PowerShell-Module in Windows 8.0 und Windows Server 2012
33.3 PowerShell-Module in Windows 8.1 und Windows Server 2012 R2
33.4 PowerShell-Module in Windows 10 und Windows Server 2016
33.5 PowerShell Community Extensions (PSCX)
33.6 PowerShellPack
33.7 www.IT-Visions.de: PowerShell Extensions
33.8 Quest Management Shell for Active Directory
33.9 Microsoft Exchange Server
33.10 System Center Virtual Machine Manager
33.11 PowerShell Management Library for Hyper-V (pshyperv)
33.12 Powershell Outlook Account Manager
33.13 PowerShell Configurator (PSConfig)
33.14 Weitere Erweiterungen
34 Delegierte Administration/Just Enough Administration (JEA)
34.1 JEA-Konzept
34.2 PowerShell-Sitzungskonfiguration erstellen
34.3 Sitzungskonfiguration nutzen
34.4 Delegierte Administration per Webseite
35 Tipps und Tricks zur PowerShell
35.1 Alle Anzeigen löschen
35.2 Befehlsgeschichte
35.3 System- und Hostinformationen
35.4 Anpassen der Eingabeaufforderung (Prompt)
35.5 PowerShell-Befehle aus anderen Anwendungen heraus starten
35.6 ISE erweitern
35.7 PowerShell für Gruppenrichtlinienskripte
35.8 Einblicke in die Interna der Pipeline-Verarbeitung
Teil C: PowerShell im Praxiseinsatz
36 Dateisystem
36.1 Laufwerke
36.2 Ordnerinhalte
36.3 Dateieigenschaften verändern
36.4 Eigenschaften ausführbarer Dateien
36.5 Kurznamen
36.6 Lange Pfade
36.7 Dateisystemoperationen
36.8 Praxisbeispiel: Zufällige Dateisystemstruktur erzeugen
36.9 Praxisbeispiel: Leere Ordner löschen
36.10 Einsatz von Robocopy
36.11 Dateisystemkataloge
36.12 Papierkorb leeren
36.13 Dateieigenschaften lesen
36.14 Praxisbeispiel: Fotos nach Aufnahmedatum sortieren
36.15 Datei-Hash
36.16 Finden von Duplikaten
36.17 Verknüpfungen im Dateisystem
36.18 Komprimierung
36.19 Dateisystemfreigaben
36.20 Überwachung des Dateisystems
36.21 Dateiversionsverlauf
36.22 Windows Explorer öffnen
36.23 Windows Server Backup
37 Festplattenverschlüsselung mit BitLocker
37.1 Übersicht über das BitLocker-Modul
37.2 Verschlüsseln eines Laufwerks
38 Dokumente
38.1 Textdateien
38.2 CSV-Dateien
38.3 Analysieren von Textdateien
38.3.1 Convert-String
38.3.2 ConvertFrom-String
38.4 INI-Dateien
38.5 XML-Dateien
38.6 HTML-Dateien
38.7 Binärdateien
39 Datenbanken
39.1 ADO.NET-Grundlagen
39.2 Beispieldatenbank
39.3 Datenzugriff mit den Bordmitteln der PowerShell
39.4 Datenzugriff mit den PowerShell-Erweiterungen
39.5 Datenbankzugriff mit SQLPS
39.6 Datenbankzugriff mit SQLPSX
40 Microsoft-SQL-Server-Administration
40.1 PowerShell-Integration im SQL Server Management Studio
40.2 SQL-Server-Laufwerk „SQLSERVER:“
40.3 Die SQLPS-Commandlets
40.4 Die SQL Server Management Objects (SMO)
40.5 SQLPSX
40.6 Microsoft-SQL-Server-Administration mit der PowerShell in der Praxis
41 ODBC-Datenquellen
41.1 ODBC-Treiber und -Datenquellen auflisten
41.2 Anlegen einer ODBC-Datenquelle
41.3 Zugriff auf eine ODBC-Datenquelle
42 Registrierungsdatenbank (Registry)
42.1 Schlüssel auslesen
42.2 Schlüssel anlegen und löschen
42.3 Laufwerke definieren
42.4 Werte anlegen und löschen
42.5 Werte auslesen
42.6 Praxisbeispiel: Windows-Explorer-Einstellungen
42.7 Praxisbeispiel: Massenanlegen von Registry-Schlüsseln
43 Computer- und Betriebssystemverwaltung
43.1 Computerinformationen
43.2 Versionsnummer des Betriebssystems
43.3 Zeitdauer seit dem letzten Start des Betriebssystems
43.4 BIOS- und Startinformationen
43.5 Windows-Produktaktivierung
43.6 Umgebungsvariablen
43.6.1 Laufwerk env:
43.6.2 Variable $env
43.6.3 .NET-Klasse System.Environment
43.7 Schriftarten
43.8 Computername und Domäne
43.9 Herunterfahren und Neustarten
43.10 Windows Updates installieren
43.10.1 Suche nach Updates
43.10.2 Installation von Updates
43.10.3 Änderung der Einstellungen zu automatischen Updates
43.11 Wiederherstellungspunkte verwalten
44 Windows Defender
45 Hardwareverwaltung
45.1 Hardwarebausteine
45.2 Plug-and-Play-Geräte
45.3 Druckerverwaltung (ältere Betriebssysteme)
45.4 Druckerverwaltung (seit Windows 8 und Windows Server 2012)
46 Softwareverwaltung
46.1 Softwareinventarisierung
46.2 Installation von Anwendungen
46.3 Deinstallation von Anwendungen
46.4 Praxisbeispiel: Installationstest
46.5 Installationen mit PowerShell Package Management („OneGet“)
46.5.1 Voraussetzungen
46.5.2 Paketmanagement-Commandlets
46.6 Versionsnummer ermitteln
46.7 Servermanager
46.8 Softwareeinschränkungen mit dem PowerShell-Modul „AppLocker“
47 Prozessverwaltung
47.1 Prozesse auflisten
47.2 Prozesse starten
47.3 Prozesse mit vollen Administratorrechten starten
47.4 Prozesse unter einem anderen Benutzerkonto starten
47.5 Prozesse beenden
47.6 Warten auf das Beenden einer Anwendung
48 Systemdienste
48.1 Dienste auflisten
48.2 Dienstzustand ändern
48.3 Diensteigenschaften ändern
49 Netzwerk
49.1 Netzwerkkonfiguration (ältere Betriebssysteme)
49.2 Netzwerkkonfiguration (ab Windows 8 und Windows Server 2012)
49.3 DNS-Client-Konfiguration
49.4 DNS-Namensauflösung
49.5 Erreichbarkeit prüfen (Ping)
49.6 Windows Firewall
49.7 Remote Desktop (RDP) einrichten
49.8 E-Mails senden (SMTP)
49.8.1 E-Mail senden mit System.Net.Mail
49.8.2 E-Mail senden mit Send-SmtpMail
49.8.3 E-Mail senden mit Send-MailMessage
49.9 Auseinandernehmen von E-Mail-Adressen
49.10 Abruf von Daten von einem HTTP-Server
49.11 Praxisbeispiel: Linkprüfer für eine Website
49.12 Aufrufe von SOAP-Webdiensten
49.13 Aufruf von REST-Diensten
49.14 Aufrufe von OData-Diensten
49.15 Hintergrunddatentransfer mit BITS
49.15.1 BITS-Commandlets
49.15.2 Beispiel
49.15.3 Abfrage des Fortschritts
49.15.4 Anhalten und Löschen von Hintergrund-Downloads
50 Ereignisprotokolle (Event Log)
51 Leistungsdaten (Performance Counter)
51.1 Zugriff auf Leistungsindikatoren über WMI
51.2 Get-Counter
52 Sicherheitseinstellungen
52.1 Aktueller Benutzer
52.2 Grundlagen
52.3 Zugriffsrechtelisten auslesen
52.4 Einzelne Rechteeinträge auslesen
52.5 Besitzer auslesen
52.6 Benutzer und SID
52.7 Hinzufügen eines Rechteeintrags zu einer Zugriffsrechteliste
52.8 Entfernen eines Rechteeintrags aus einer Zugriffsrechteliste
52.9 Zugriffsrechteliste übertragen
52.10 Zugriffsrechteliste über SDDL setzen
52.11 Zertifikate verwalten
53 Optimierungen und Problemlösungen
53.1 PowerShell-Modul „TroubleshootingPack“
53.2 PowerShell-Modul „Best Practices“
54 Active Directory
54.1 Benutzer- und Gruppenverwaltung mit WMI
54.2 Einführung in System.DirectoryServices
54.3 Basiseigenschaften
54.4 Benutzer- und Gruppenverwaltung im Active Directory
54.5 Verwaltung der Organisationseinheiten
54.6 Suche im Active Directory
54.7 Navigation im Active Directory mit den PowerShell Extensions
54.8 Verwendung der Active-Directory-Erweiterungen von www.IT-Visions.de
54.9 PowerShell-Modul „Active Directory“ (ADPowerShell)
54.10 PowerShell-Modul „ADDSDeployment“
54.11 Informationen über die Active-Directory-Struktur
55 Gruppenrichtlinien
55.1 Verwaltung der Gruppenrichtlinien
55.2 Verknüpfung der Gruppenrichtlinien
55.3 Gruppenrichtlinienberichte
55.4 Gruppenrichtlinienvererbung
55.5 Weitere Möglichkeiten
56 Lokale Benutzer und Gruppen
56.1 Modul „Microsoft.PowerShell.LocalAccounts“
56.2 Lokale Benutzerverwaltung in älteren PowerShell-Versionen
57 Microsoft Exchange Server
57.1 Daten abrufen
57.2 Postfächer verwalten
57.3 Öffentliche Ordner verwalten
58 Internet Information Server (IIS)
58.1 Überblick
58.2 Navigationsprovider
58.3 Anlegen von Websites
58.4 Praxisbeispiel: Massenanlegen von Websites
58.5 Ändern von Website-Eigenschaften
58.6 Anwendungspool anlegen
58.7 Virtuelle Verzeichnisse und IIS-Anwendungen
58.8 Website-Zustand ändern
58.9 Anwendungspools starten und stoppen
58.10 Löschen von Websites
59 Virtuelle Systeme mit Hyper-V
59.1 Das Hyper-V-Modul von Microsoft
59.2 Die ersten Schritte mit dem Hyper-V-Modul
59.3 Virtuelle Maschinen anlegen
59.4 Umgang mit virtuellen Festplatten
59.5 Konfiguration virtueller Maschinen
59.6 Dateien kopieren in virtuelle Systeme
59.7 PowerShell Management Library for Hyper-V (für ältere Betriebssysteme)
60 Windows Nano Server
60.1 Das Konzept von Nano Server
60.2 Einschränkungen von Nano Server
60.3 Varianten des Nano Servers
60.4 Installation eines Nano Servers
60.5 Docker-Image
60.6 Fernverwaltung mit PowerShell
60.7 Windows Update auf einem Nano Server
60.8 Nachträgliche Paketinstallation
60.9 Abgespeckter IIS unter Nano Server
60.10 Nano-Serververwaltung aus der Cloud heraus
61 Docker-Container
61.1 Docker-Varianten für Windows
61.2 Docker-Installation auf Windows 10
61.3 Docker-Installation auf Windows Server 2016
61.4 Installation von „Docker for Windows“
61.5 Docker-Registries
61.6 Docker-Images laden
61.7 Container starten
61.8 Container-Identifikation
61.9 Container mit Visual Studio
61.9.1 Containerprojekt erstellen
61.9.2 Debugging eines Containers
61.9.3 Verwendung des erstellten Containers
61.10 Befehle in einem Container ausführen
61.11 Ressourcenbeschränkungen für Container
61.12 Dateien zwischen Container und Host kopieren
61.13 Dockerfile
61.14 Docker-Netzwerke
61.15 Container anlegen, ohne sie zu starten
61.16 Container starten und stoppen
61.17 Container beenden und löschen
61.18 Images löschen
61.19 Images aus Containern erstellen
61.20 .NET Core-Container
61.21 Images verbreiten
61.21.1 Images verbreiten mit Archiv-Dateien
61.21.2 Images verbreiten via Repository
61.22 Azure Container Service (ACS)
62 Grafische Benutzeroberflächen (GUI)
62.1 Einfache Nachfragedialoge
62.2 Einfache Eingabe mit Inputbox
62.3 Komplexere Eingabemasken
62.4 Universelle Objektdarstellung
62.5 WPF PowerShell Kit (WPK)
62.6 Direkte Verwendung von WPF
Teil D:Profiwissen – Erweitern der PowerShell
63 Entwicklung von Commandlets in der PowerShell-Skriptsprache
63.1 Aufbau eines skriptbasierten Commandlets
63.2 Verwendung per Dot Sourcing
63.3 Parameterfestlegung
63.4 Fortgeschrittene Funktion (Advanced Function)
63.5 Mehrere Parameter und Parametersätze
63.6 Unterstützung für Sicherheitsabfragen (-whatif und -confirm)
63.7 Kaufmännisches Beispiel: Test-CustomerID
63.8 Erweitern bestehender Commandlets durch Proxy-Commandlets
63.8.1 Schritt 1: Generierung des Grundgerüstes
63.8.2 Schritt 2: Erweitern des Grundgerüstes
63.8.3 Schritt 3: Einsatz des Proxy-Commandlets
63.9 Dokumentation
64 Entwicklung eigener Commandlets mit C#
64.1 Technische Voraussetzungen
64.2 Grundkonzept der .NET-basierten Commandlets
64.3 Schrittweise Erstellung eines minimalen Commandlets
64.4 Erstellung eines Commandlets mit einem Rückgabeobjekt
64.5 Erstellung eines Commandlets mit mehreren Rückgabeobjekten
64.6 Erstellen eines Commandlets mit Parametern
64.7 Verarbeiten von Pipeline-Eingaben
64.8 Verkettung von Commandlets
64.9 Fehlersuche in Commandlets
64.10 Statusinformationen
64.11 Unterstützung für Sicherheitsabfragen (-whatif und -confirm)
64.12 Festlegung der Hilfeinformationen
64.13 Erstellung von Commandlets für den Zugriff auf eine Geschäftsanwendung
64.14 Konventionen für Commandlets
64.15 Weitere Möglichkeiten
65 PowerShell-Module erstellen
65.1 Erstellen eines Skriptmoduls
65.2 Praxisbeispiel: Umwandlung einer Skriptdatei in ein Modul
65.3 Erstellen eines Moduls mit Binärdateien
65.4 Erstellen eines Moduls mit Manifest
65.5 Erstellung eines Manifest-Moduls mit Visual Studio
66 Hosting der PowerShell
66.1 Voraussetzungen für das Hosting
66.2 Hosting mit PSHost
66.3 Vereinfachtes Hosting seit PowerShell 2.0
Anhang A: Crashkurs „Objektorientierung“
Anhang B: Crashkurs .NET
B.1 Was ist das .NET Framework?
B.2 Was ist .NET Core?
B.3 Eigenschaften von .NET
B.4 .NET-Klassen
B.5 Namensgebung von .NET-Klassen (Namensräume)
B.6 Namensräume und Softwarekomponenten
B.7 Bestandteile einer .NET-Klasse
B.8 Vererbung
B.9 Schnittstellen
Anhang C: Literatur
Anhang D: Weitere Informationen im Internet
Anhang E: Abkürzungsverzeichnis
Liebe Leserin, lieber Leser,
willkommen zur fünften Auflage dieses PowerShell-Buchs! Das vor Ihnen liegende Buch behandelt die Windows PowerShell in der Version 5.1 sowie die PowerShell Core in der Version 6.0 (zum Redaktionsschluss dieses Buchs noch Beta-Version) von Microsoft sowie ergänzende Werkzeuge von Microsoft und Drittanbietern (z. B. PowerShell Community Extensions). Das Buch ist aber auch geeignet, wenn Sie noch PowerShell 2.0, 3.0, 4.0 oder 5.0 einsetzen. Welche Funktionen neu hinzugekommen sind, wird jeweils erwähnt.
Wer bin ich?
Mein Name ist Holger Schwichtenberg, ich bin derzeit 44 Jahre alt und habe im Fachgebiet Wirtschaftsinformatik promoviert. Ich lebe (in Essen, im Herzen des Ruhrgebiets) davon, dass mein Team und ich im Rahmen unserer Firma www.IT-Visions.de anderen Unternehmen bei der Entwicklung von .NET-, Web- und PowerShell-Anwendungen beratend und schulend zur Seite stehen. Zudem entwickeln wir im Rahmen der 5Minds IT-Solutions GmbH & Co. KG Software (www.5Minds.de) im Auftrag von Kunden in zahlreichen Branchen.
Es ist mein Hobby und Nebenberuf, IT-Fachbücher zu schreiben. Dieses Buch ist, unter Mitzählung aller nennenswerten Neuauflagen, das 67. Buch, das ich allein oder mit Co-Autoren geschrieben habe. Meine weiteren Hobbys sind Mountain Biking, Lauf-Sport, Fotografie und Reisen.
Natürlich verstehe ich das Bücherschreiben auch als Werbung für die Arbeit unserer Unternehmen und wir hoffen, dass der ein oder andere von Ihnen uns beauftragen wird, Ihre Organisation durch Beratung, Schulung und Auftragsentwicklung zu unterstützen.
Wer sind Sie?
Damit Sie den optimalen Nutzen aus diesem Buch ziehen können, möchte ich – so genau es mir möglich ist – beschreiben, an wen sich dieses Buch richtet. Hierzu habe ich einen Fragebogen ausgearbeitet, mit dem Sie schnell erkennen können, ob das Buch für Sie geeignet ist.
Sind Sie Systemadministrator in einem Windows-Netzwerk?
○ Ja
○ Nein
Laufen die für Sie relevanten Computer mit den von PowerShell 3.0, 4.0, 5.x oder 6.x unterstützten Betriebssystemen? (Windows 7/8/8.1/10, Windows Server 2008/2008 R2/2012/2012 R2/2016)Hinweis: Die PowerShell 6.0 für Linux und MacOS wird nur als Randthema kurz in diesem Buch behandelt, da es hier bislang kaum Befehle für die PowerShell gibt!
○ Ja
○ Nein
Sie besitzen zumindest rudimentäre Grundkenntnisse im Bereich des (objektorientierten) Programmierens?
○ Ja
○ Nein
Wünschen Sie einen kompakten Überblick über die Architektur, Konzepte und Anwendungsfälle der PowerShell?
○ Ja
○ Nein
Sie können auf Schritt-für-Schritt-Anleitungen verzichten?
○ Ja
○ Nein
Sie können auf formale Syntaxbeschreibungen verzichten und lernen lieber an aussagekräftigen Beispielen?
○ Ja
○ Nein
Sie erwarten nicht, dass in diesem Buch alle Möglichkeiten der PowerShell detailliert beschrieben werden?
○ Ja
○ Nein
Sind Sie, nachdem Sie ein Grundverständnis durch dieses Buch gewonnen haben, bereit, Detailfragen in der Dokumentation der PowerShell, von .NET und WMI nachzuschlagen, da das Buch auf 1200 Seiten nicht alle Details erläutern kann?
○ Ja
○ Nein
Wenn Sie alle obigen Fragen mit „Ja“ beantwortet haben, ist das Buch richtig für Sie. In anderen Fällen sollten Sie sich erst mit einführender Literatur beschäftigen.
Was ist neu in diesem Buch?
Gegenüber der vorherigen Auflage zur PowerShell 5.0 wurde das Buch um die neuen Funktionen in Windows PowerShell 5.1 sowie PowerShell Core 6.0 erweitert und inhaltlich optimiert. Praxiseinsatzkapitel wurden ergänzt zu Windows Update, Windows Nano Server und Docker-Containern. Zudem wurden die bestehenden Inhalte des Buchs an vielen Stellen erweitert und didaktisch optimiert.
Sind in diesem Buch alle Features der PowerShell beschrieben?
Die PowerShell umfasst mittlerweile über 1500 Commandlets mit jeweils zahlreichen Optionen. Zudem gibt es unzählige Erweiterungen mit vielen hundert weiteren Commandlets. Zudem existieren zahlreiche Zusatzwerkzeuge. Es ist allein schon aufgrund der Vorgaben des Verlags für den Umfang des Buchs nicht möglich, alle Commandlets und Parameter hier auch nur zu erwähnen. Zudem habe ich – obwohl ich selbst fast jede Woche mit der PowerShell in der Praxis arbeite – immer noch nicht alle Commandlets und alle Parameter jemals eingesetzt. Ich beschreibe in diesem Buch, was ich selbst in der Praxis, in meinen Schulungen und bei Kundeneinsätzen verwende. Es macht auch keinen Sinn, jedes Detail der PowerShell hier zu dokumentieren. Stattdessen gebe ich Ihnen Hilfe zur Selbsthilfe, damit Sie die Konzepte gut verstehen und sich dann Sonderfälle selbst erarbeiten können.
Wie aktuell ist dieses Buch?
Die Informationstechnik hat sich immer schon schnell verändert. Seit aber auch Microsoft das Themen „Agilität“ und „Open Source“ für sich entdeckt hat, ist die Entwicklung nicht mehr schnell, sondern zum Teil rasant:
Es erscheinen in kurzer Abfolge immer neue Produkte.
Produkte erscheinen schon in frühen Produktstadien als „Preview“ mit Versionsnummern wie 0.1.
Produkte ändern sich häufig. Aufwärts- und Abwärtskompatibilität ist kein Ziel mehr. Es wird erwartet, dass Sie Ihre Lösungen ständig den neuen Gegebenheiten anpassen.
Produkte werden nicht mehr so ausführlich dokumentiert wie früher. Teilweise erscheint Dokumentation erst deutlich nach dem Erscheinen der Software.
Produkte werden schnell auch wieder abgekündigt, wenn sie sich aus der Sicht der Hersteller bzw. aufgrund des Nutzerfeedbacks nicht bewährt haben.
Unter diesen neuen Einflussströmen steht natürlich auch dieses etablierte Buch. Leider kann man ein gedrucktes Buch nicht so schnell ändern wie Software. Verlage definieren erhebliche Mindestauflagen, die abverkauft werden müssen, bevor neu gedruckt werden darf. Das E-Book ist keine Alternative. Die Verkaufszahlen zeigen, dass nur eine verschwindend kleine Menge von Lesern technischer Literatur ein E-Book statt eines gedruckten Buchs kauft. Das E-Book wird offenbar nur gerne als Ergänzung genommen. Das kann ich gut verstehen, denn ich selbst lese auch lieber gedruckte Bücher und nutze E-Books nur für eine Volltextsuche.
Daher kann es passieren, dass – auch schon kurz nach dem Erscheinen dieses Buchs – einzelne Informationen in diesem Buch nicht mehr zu neueren Versionen passen. Wenn Sie so einen Fall feststellen, schreiben Sie bitte eine Nachricht an mich im Leser-Portal (siehe unten). Ich werde dies dann in Neuauflagen des Buchs berücksichtigen.
Wem ist zu danken?
Folgenden Personen möchte ich meinen Dank für ihre Mitwirkung an diesem Buch aussprechen:
meinem Kollegen und Freund Peter Monadjemi, der rund 100 Seiten mit Beispielen zu der Vor-Vor-Vor-Auflage dieses Buchs beigetragen hat (Themen: Workflows, Bitlocker, ODBC, Hyper-V, DNS-Client, Firewall und SQL-Server-Administration),
Frau Sylvia Hasselbach, die mich schon seit 20 Jahren als Lektorin begleitet und die dieses Buchprojekt beim Carl Hanser Verlag koordiniert und vermarktet,
Frau Sandra Gottmann, die meine Tippfehler gefunden und sprachliche Ungenauigkeiten eliminiert hat,
meiner Frau und meinen Kindern dafür, dass sie mir das Umfeld geben, um neben meinem Hauptberuf an Büchern wie diesem zu arbeiten.
Woher bekommen Sie die Beispiele aus diesem Buch?
Unter http://www.powershell-doktor.de/leser biete ich ein ehrenamtlich betriebenes Webportal für Leser meiner Bücher an. In diesem Portal können Sie
die Codebeispiele aus diesem Buch in einem Archiv herunterladen,
eine PowerShell-Kurzreferenz „Cheat Sheet“ (zwei DIN-A4-Seiten als Hilfe für die tägliche Arbeit) kostenlos herunterladen,
Feedback zu diesem Buch geben (Bewertung abgeben und Fehler melden) und
technische Fragen in einem Webforum stellen.
Alle registrierten Leser erhalten auch Einladungen zu kostenlosen Community-Veranstaltungen sowie Vergünstigungen bei unseren öffentlichen Seminaren zu .NET und zur PowerShell. Bei der Registrierung müssen Sie das Kennwort Rogue One angeben.
Wie sind die Programmcodebeispiele organisiert?
Die Beispiele sind im Archiv organisiert nach den Buchteilen und innerhalb der Buchteile nach Kapitelnamen (verkürzt). In diesem Buch wird für den Zugriff auf die Beispieldateien das X:-Laufwerk verwendet. Dies müssen Sie auf Ihre Situation anpassen!
Wo können Sie sich schulen oder beraten lassen?
Unter der E-Mail-Adresse [email protected] stehen mein Team und ich für Anfragen bezüglich Schulung, Beratung und Entwicklungstätigkeiten zur Verfügung – nicht nur zum Thema PowerShell und .NET, sondern zu fast allen modernen Techniken der Entwicklung und des Betriebs von Software. Wir besuchen Sie gerne in Ihrem Unternehmen an einem beliebigen Standard.
Zum Schluss des Vorworts ...
... wünsche ich Ihnen viel Spaß und Erfolg mit der PowerShell!
Dr. Holger Schwichtenberg
Essen, im Juni 2017
Studienabschluss Diplom-Wirtschaftsinformatik an der Universität Essen
Promotion an der Universität Essen im Gebiet komponentenbasierter Softwareentwicklung
Seit 1996 selbstständig als unabhängiger Berater, Dozent, Softwarearchitekt und Fachjournalist
Leiter des Berater- und Dozententeams bei www.IT-Visions.de
Leitung der Softwareentwicklung im Bereich Microsoft/.NET bei der 5Minds IT-Solutions GmbH & Co. KG (www.5minds.de)
Über 65 Fachbücher beim Carl Hanser Verlag, bei O’Reilly, Microsoft Press und Addison-Wesley sowie mehr als 950 Beiträge in Fachzeitschriften
Gutachter in den Wettbewerbsverfahren der EU gegen Microsoft (2006–2009)
Ständiger Mitarbeiter der Zeitschriften iX (seit 1999), dotnetpro (seit 2000) und Windows Developer (seit 2010) sowie beim Online-Portal heise.de (seit 2008)
Regelmäßiger Sprecher auf nationalen und internationalen Fachkonferenzen (z. B. Microsoft TechEd, Microsoft Summit, Microsoft IT Forum, BASTA, BASTA-on-Tour, .NET Architecture Camp, Advanced Developers Conference, Developer Week, OOP, DOTNET Cologne, MD DevDays, Community in Motion, DOTNET-Konferenz, VS One, NRW.Conf, Net.Object Days, Windows Forum)Zertifikate und Auszeichnungen von Microsoft:
Bereits 14 mal ausgezeichnet als Microsoft Most Valuable Professional (MVP)
Zertifiziert als Microsoft Certified Solution Developer (MCSD)
Thematische Schwerpunkte:
Softwarearchitektur, mehrschichtige Softwareentwicklung, Softwarekomponenten, SOA
Microsoft .NET Framework, Visual Studio, C#, Visual Basic
.NET-Architektur/Auswahl von .NET-Technologien
Einführung von .NET Framework und Visual Studio/Migration auf .NET
Webanwendungsentwicklung und Cross-Plattform-Anwendungen mit HTML, ASP.NET, JavaScript/TypeScript und Webframeworks wie Angular
Enterprise .NET, verteilte Systeme/Webservices mit .NET insbes. Windows Communication Foundation und WebAPI
Relationale Datenbanken, XML, Datenzugriffsstrategien
Objektrelationales Mapping (ORM), insbesondere ADO.NET Entity Framework und EF Core
Windows PowerShell, PowerShell Core und Windows Management Instrumentation (WMI)
Ehrenamtliche Community-Tätigkeiten:
Vortragender für die International .NET Association (INETA)
Betrieb diverser Community-Websites: www.dotnetframework.de, www.entwickler-lexikon.de, www.windows-scripting.de, www.aspnetdev.de u. a.
Firmenwebsites: http://www.IT-Visions.de und http://www.5minds.de
Weblog: http://www.dotnet-doktor.de
Kontakt: [email protected] sowie Telefon 02 01-64 95 90-0
Dieser Buchteil informiert über die Basiskonzepte der PowerShell, insbesondere Commandlets, Pipelines, Navigation und Skripte. Außerdem werden am Ende dieses Teils Werkzeuge vorgestellt.