Windows PowerShell und PowerShell Core - Der schnelle Einstieg - Holger Schwichtenberg - E-Book

Windows PowerShell und PowerShell Core - Der schnelle Einstieg E-Book

Holger Schwichtenberg

0,0

Beschreibung

So bekommen Sie die PowerShell in Griff!
PowerShell- und .NET-Experte Dr. Holger Schwichtenberg bietet Ihnen eine kompakte Einführung in die kommandozeilenbasierte Administration und das Scripting mit Windows PowerShell und PowerShell Core.
Windows PowerShell ist mittlerweile fester Bestandteil von Windows und Windows Server, während PowerShell Core als plattformübergreifendes OpenSource-Projekt ver-fügbar ist. Mit beiden Tools können Windows-Administratoren ihre täglichen Aufgaben komfortabel automatisieren sowie PCs und Server remote warten.

Zahlreiche Beispiele, Übungsaufgaben sowie Hinweise auf häufig auftretende Fehler unterstützen Sie bei der praktischen Arbeit mit PowerShell.
Das Buch kann für alle Windows-Versionen eingesetzt werden – von XP/Windows Server 2003 bis Windows 10/Windows Server 2016 sowie für diverse Linux-Distributionen und macOS. Behandelt werden PowerShell 5.1 und Core 6, das Buch ist aber auch für die Vorgängerversionen geeignet.

AUS DEM INHALT:
• PowerShell-Einzelbefehle
• Hilfefunktionen
• Objektorientiertes Pipelining
• PowerShell-Skripte und die PowerShell-Skriptsprache
• Ausgaben und Benutzereingaben
• PowerShell Provider
• Remoting
• Verwendung von .NET- und COM-Klassen
• Zugriff auf die WMI
• Fehlersuche
• Standardeinstellungen ändern mit Profilskripten
• PowerShell-Module
• PowerShell Core 6.0 für Windows, Linux und MacOS
• Praxislösungen und Übungen

Sie lesen das E-Book in den Legimi-Apps auf:

Android
iOS
von Legimi
zertifizierten E-Readern

Seitenzahl: 409

Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:

Android
iOS
Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Holger Schwichtenberg

Windows PowerShell und PowerShell Core Der schnelle Einstieg

Skriptbasierte Systemadministration für Windows, Linux und macOS

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 Markenschutz­Gesetzgebung 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: Petra Kienle, Fürstenfeldbruck Umschlagdesign: Marc Müller-Bremer, München, www.rebranding.de Umschlagrealisation: Stephan Rönigk

Print-ISBN 978-3-446-45214-5 E-Book-ISBN 978-3-446-45281-7

Verwendete Schriften: SourceSansPro und SourceCodePro (Lizenz) CSS-Version: 1.0

Inhalt

Titelei

Impressum

Inhalt

Vorwort

Was ist das Konzept dieses Buchs?

Wer bin ich?

Wer sind Sie?

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

1 Erste Schritte mit der PowerShell

1.1 Was ist die PowerShell?

1.2 Windows PowerShell versus PowerShell Core

1.3 Windows PowerShell herunterladen und auf anderen Windows-Betriebssystemen installieren

1.4 Die Windows PowerShell testen

1.4.1 PowerShell im interaktiven Modus

1.4.2 Installierte Version ermitteln

1.4.3 PowerShell im Skriptmodus

1.4.4 Skript eingeben

1.4.5 Skript starten

1.4.6 Skriptausführungsrichtlinie ändern

1.4.7 Farben ändern

1.5 Woher kommen die Commandlets?

1.6 PowerShell Community Extensions (PSCX) herunterladen und installieren

1.7 Den Windows PowerShell-Editor „ISE“ verwenden

2 Fakten zur PowerShell

2.1 Geschichte der PowerShell

2.2 Warum PowerShell einsetzen?

2.3 Einflussfaktoren auf die Entwicklung der PowerShell

2.4 Betriebssysteme mit vorinstallierter PowerShell

2.5 Anbindung an Klassenbibliotheken

2.6 PowerShell versus WSH

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

3.6 Aufgaben zu diesem Kapitel

4 Hilfe funktionen

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 .NETKlassen

4.12 Aufgaben zu diesem Kapitel

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

5.10 Methoden ausführen

5.11 Analyse des Pipeline-Inhalts

5.12 Filtern

5.13 Zusammenfassung von Pipeline-Inhalten

5.14 „Kastrierung“ von Objekten in der Pipeline

5.15 Sortieren

5.16 Duplikate entfernen

5.17 Gruppierung

5.18 Berechnungen

5.19 Zwischenschritte in der Pipeline mit Variablen

5.20 Verzweigungen in der Pipeline

5.21 Vergleiche zwischen Objekten

5.22 Zusammenfassung

5.23 Aufgaben zu diesem Kapitel

6 PowerShell-Skripte

6.1 Skriptdateien

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

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)

6.11 Aufgaben zu diesem Kapitel

7 Die 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

7.21 Aufgaben zu diesem Kapitel

8 Ausgaben

8.1 Ausgabe-Commandlets

8.2 Benutzerdefinierte Tabellenformatierung

8.3 Benutzerdefinierte Listenausgabe

8.4 Mehrspaltige Ausgabe

8.5 Out-GridView

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

8.19 Aufgaben zu diesem Kapitel

9 Benutzereingaben

9.1 Read-Host

9.2 Benutzerauswahl

9.3 Grafischer Eingabedialog

9.4 Dialogfenster

9.5 Authentifizierungsdialog

9.6 Zwischenablage (Clipboard )

9.7 Aufgaben zu diesem Kapitel

10 Das PowerShell-Navigationsmodell (PowerShell Provider)

10.1 Einführungsbeispiel: Navigation in der Registrierungsdatenbank

10.2 Provider und Laufwerke

10.3 Navigationsbefehle

10.4 Pfadangaben

10.5 Beispiel

10.6 Eigene Laufwerke definieren

10.7 Aufgaben zu diesem Kapitel

11 Fernausführung (Remoting)

11.1 RPC-Fernabfrage ohne WS-Management

11.2 Anforderungen an PowerShell Remoting

11.3 Rechte für PowerShell-Remoting

11.4 Einrichten von PowerShell Remoting

11.5 Überblick über die Fernausführungs-Commandlets

11.6 Interaktive Fernverbindungen im Telnet-Stil

11.7 Fernausführung von Befehlen

11.8 Parameterübergabe an die Fernausführung

11.9 Fernausführung von Skripten

11.10 Ausführung auf mehreren Computern

11.11 Sitzungen

11.11.1 Commandlets zur Sitzungsverwaltung

11.11.2 Sitzungen erstellen

11.11.3 Kopieren von Dateien in Sitzungen

11.11.4 Schließen von Sitzungen

11.11.5 Sitzungskonfigurationen

11.11.6 Zugriffsrechte für Fernaufrufe

11.12 Implizites Remoting

11.13 Zugriff auf entfernte Computer außerhalb der eigenen Domäne

11.14 Verwaltung des WS-Management-Dienstes

11.15 PowerShell Direct für Hyper-V

11.16 Praxisbeispiel zu PowerShell Direct

11.17 Aufgaben zu diesem Kapitel

12 Verwendung von .NET-Klassen

12.1 Microsoft Developer Network (MSDN)

12.2 Erzeugen von Instanzen

12.3 Parameterbehaftete Konstruktoren

12.4 Initialisierung von Objekten

12.5 Nutzung von Attributen und Methoden

12.6 Statische Mitglieder in .NET-Klassen und statische .NET-Klassen

12.7 Generische Klassen nutzen

12.8 Zugriff auf bestehende Objekte

12.9 Laden von Assemblies

12.10 Objektanalyse

12.11 Auflistungen (Enumerationen)

12.12 Verknüpfen von Aufzählungswerten

12.13 Aufgaben zu diesem Kapitel

13 Verwendung von COM-Klassen

13.1 Erzeugen von COM-Instanzen

13.2 Nutzung von Attributen und Methoden

13.3 Liste aller COM-Klassen

13.4 Holen bestehender COM-Instanzen

13.5 Distributed COM (DCOM)

13.6 Aufgaben zu diesem Kapitel

14 Zugriff auf die Windows Management Instrumentation (WMI)

14.1 WMI in der PowerShell

14.2 Open Management Infrastructure (OMI)

14.3 Abruf von WMI-Objektmengen

14.4 Fernzugriffe

14.5 Filtern und Abfragen

14.6 Liste aller WMI-Klassen

14.7 Hintergrundwissen: WMI-Klassenprojektion mit dem PowerShell-WMI-Objektadapter

14.8 Beschränkung der Ausgabeliste bei WMI-Objekten

14.9 Zugriff auf einzelne Mitglieder von WMI-Klassen

14.10 Werte setzen in WMI-Objekten

14.11 Umgang mit WMI-Datumsangaben

14.12 Methodenaufrufe

14.13 Neue WMI-Instanzen erzeugen

14.14 Instanzen entfernen

14.15 Commandlet Definition XML-Datei (CDXML)

14.16 Aufgaben zu diesem Kapitel

15 Fehlersuche

15.1 Detailinformationen

15.2 Einzelschrittmodus

15.3 Zeitmessung

15.4 Ablaufverfolgung (Tracing)

15.4.1 Tracesources

15.4.2 Verfolgung eines Einzelbefehls

15.4.3 Generelle Ablaufverfolgung

15.5 Erweiterte Protokollierung aktivieren

15.6 Script-Debugging in der ISE

15.7 Kommandozeilenbasiertes Script-Debugging

16 Standardeinstellungen ändern mit Profilskripten

16.1 Profilpfade

16.2 Ausführungsreihenfolge

16.3 Beispiel für eine Profildatei

16.4 Starten der PowerShell ohne Profilskripte

17 PowerShell-Module

17.1 Überblick über die Commandlets

17.2 Modularchitektur

17.3 Aufbau eines Moduls

17.4 Module aus dem Netz herunterladen und installieren mit PowerShellGet

17.5 Module manuell installieren

17.6 Doppeldeutige Namen

17.7 Importieren von Modulen

17.8 Entfernen von Modulen

18 Praxislösungen

18.1 Leere Ordner löschen

18.2 Fotos nach Aufnahmedatum sortieren

18.3 Zufällige Dateisystemstruktur erzeugen

18.4 Freigaben anlegen

18.4.1 WMI-Klassen

18.4.2 Freigaben auflisten

18.4.3 Freigaben anlegen (mit WMI)

18.4.4 Berechtigungen auf Freigaben setzen

18.4.5 Freigaben anlegen (mit PowerShell-Commandlets)

18.4.6 Freigaben anlegen auf Basis einer XML-Datei

18.5 Netzwerkkonfiguration

18.6 Massenanlegen von Registry-Schlüsseln

18.7 Massenanlegen von Active-Directory-Benutzerkonten

18.7.1 Benutzer und Gruppen anlegen aus einer Datenbank (Microsoft Access oder Microsoft SQL Server)

18.7.2 Benutzer und Gruppen anlegen aus einer CSV-Datei

18.8 Massenanlegen von IIS-Websites

18.9 Softwareinstallation

18.10 Virtuelles System in Hyper-V anlegen

19 PowerShell Core 6.x für Windows, Linux und macOS

19.1 Geschichte der PowerShell Core

19.2 Vergleich zwischen Windows PowerShell und PowerShell Core

19.3 Motivation für den Einsatz der PowerShell Core auf Linux und macOS

19.4 PowerShell Core installieren und testen

19.4.1 Installation und Test auf Windows

19.4.2 Installation und Test auf Ubuntu Linux

19.4.3 Installation und Test auf macOS

19.5 Funktionsumfang der PowerShell Core

19.6 Entfallene Commandlets in PowerShell Core

19.6.1 PowerShell-Kern-Befehle, die in PowerShell Core fehlen

19.6.2 Befehle, die zusätzlich unter Linux und macOS fehlen

19.7 Erweiterungsmodule nutzen in PowerShell Core

19.7.1 Eingebaute Module in PowerShell Core

19.7.2 Windows-Module in PowerShell Core nutzen

19.7.3 Module der PowerShell Gallery in PowerShell Core

19.8 Geänderte Funktionen in PowerShell Core

19.8.1 Änderungen der Parameter von pwsh.exe

19.8.2 Geänderte Pfade

19.8.3 Weitere Änderungen

19.9 Neue Funktionen der PowerShell Core

19.9.1 Neue eingebaute Variablen

19.9.2 Neue Commandlets

19.9.3 Sonstige Verbesserungen in PowerShell Core

19.10 PowerShell-Core-Konsole

19.11 VSCode-PowerShell als Editor für PowerShell Core

19.11.1 PowerShell Core zur Skriptausführung konfigurieren

19.11.2 PowerShell Core für das Terminalfenster in VSCode festlegen

19.12 Verwendung auf Linux und macOS

19.12.1 Praxisbeispiel: Linux-Benutzerliste auswerten

19.12.2 Praxisbeispiel: Offene Ports auswerten

19.12.3 Praxisbeispiel: Dateien unter Linux und macOS verstecken und versteckte Dateien auflisten

19.13 PowerShell-Remoting via SSH

19.13.1 OpenSSH auf Windows

19.13.2 PowerShell Remoting mit SSH

19.14 Dokumentation zur PowerShell Core

19.15 Quellcode zur PowerShell Core

20 Weiterführende Literatur

21 Lösungen

Vorwort

Liebe Leserin, lieber Leser,

herzlich willkommen zu meinem Buch „Windows PowerShell und PowerShell Core – Der schnelle Einstieg: Skriptbasierte Systemadministration für Windows, Linux und macOS“!

Was ist das Konzept dieses Buchs?

Seit vielen Jahren veröffentliche ich sehr erfolgreich das „PowerShell-Praxisbuch“ im Carl Hanser Verlag, welches mittlerweile auf über 1200 Seiten angewachsen ist. Mit dem vor Ihnen liegenden Buch „PowerShell – Der schnelle Einstieg“ erhalten Sie eine deutlich kompaktere Einführung in die PowerShell. Gegenüber dem Praxisbuch enthält dieses Einsteigerbuch am Ende der meisten Kapitel Aufgaben mit Lösungen zur Kontrolle oder Verfestigung des Lernerfolgs.

Der Schwerpunkt dieses Buchs liegt auf der Windows PowerShell 5.1 im Einsatz auf Windows. Am Ende gibt es aber auch ein Kapitel, das die Unterschiede zu der plattformneutralen PowerShell Core 6.0 und ihrem Einsatz auf Linux und macOS beschreibt.

Wer bin ich?

Mein Name ist Holger Schwichtenberg, ich bin derzeit 45 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 aus zahlreichen Branchen.

Es ist mein Hobby und Nebenberuf, IT-Fachbücher zu schreiben. Dieses Buch ist, unter Mitzählung aller nennenswerten Neuauflagen, das 68. Buch, das ich allein oder mit Co-Autoren geschrieben habe. Meine weiteren Hobbys sind Mountain Biking, Laufsport, 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 Core 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/PowerShell Core 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 (oder meinem umfangreicheren „PowerShell Praxisbuch“) nachzuschlagen, da das Buch auf rund 400 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.

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 die 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 die 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 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:

Frau Sylvia Hasselbach, die mich schon seit 20 Jahren als Lektorin begleitet und die dieses Buchprojekt beim Carl Hanser Verlag koordiniert und vermarktet,

Frau Petra Kienle, 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 Die letzten Jedi angeben.

Wie sind die Programmcodebeispiele organisiert?

Sie erhalten die Beispiele zu diesem Buch in Form einer RAR-Archivdatei. Die Beispiele sind im Archiv organisiert nach Kapitelnamen (verkürzt). In diesem Buch wird für den Zugriff auf die Beispieldateien das X:-Laufwerk verwendet. Bitte legen Sie entweder ein Laufwerk X: an oder ändern Sie den Laufwerksbuchstaben in den Skripten.

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/.NET Core, sondern zu fast allen modernen Techniken der Entwicklung und des Betriebs von Software in großen Unternehmen. Wir besuchen Sie gerne in Ihrem Unternehmen an einem beliebigen Standort.

Zum Schluss des Vorworts . . .

… wünsche ich Ihnen viel Spaß und Erfolg mit der PowerShell!

Dr. Holger Schwichtenberg

Essen, im Frühjahr 2018

Über den Autor Dr. Holger Schwichtenberg

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

Softwareprojektleiter im Bereich Microsoft/.NET

bei der 5minds IT-Solutions GmbH & Co. KG

in Gelsenkirchen (www.5minds.de)

Über 65 Fachbücher beim Carl Hanser Verlag, bei O’Reilly, Microsoft Press und Addison-Wesley sowie mehr als 1000 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 Technical 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, ASP.NET Core, 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

1 Erste Schritte mit der PowerShell
2 Fakten zur PowerShell