21,99 €
Was kann die neue PowerShell auf den verschiedenen Betriebssystemen? Was kann sie nicht? Dieses Buch bietet eine praxisorientierte Einführung in die PowerShell-Welt mit vielen Beispielen. Lernen Sie wichtige Cmdlets, die Arbeit mit Objekten und den Gebrauch von Funktionen, Skripten und Modulen kennen. Für Umsteiger sind besonders die Unterschiede zur Windows PowerShell interessant. Grundlegende Kenntnisse im Umgang mit Windows, Linux oder macOS sind zum Verständnis des Buchs völlig ausreichend.
Sie lesen das E-Book in den Legimi-Apps auf:
Seitenzahl: 468
Veröffentlichungsjahr: 2019
PowerShell für Dummies
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.
© 2019 WILEY-VCH Verlag GmbH & Co. KGaA, Weinheim
Wiley, the Wiley logo, Für Dummies, the Dummies Man logo, and related trademarks and trade dress are trademarks or registered trademarks of John Wiley & Sons, Inc. and/or its affiliates, in the United States and other countries. Used by permission.
Wiley, die Bezeichnung »Für Dummies«, das Dummies-Mann-Logo und darauf bezogene Gestaltungen sind Marken oder eingetragene Marken von John Wiley & Sons, Inc., USA, Deutschland und in anderen Ländern.
Das vorliegende Werk wurde sorgfältig erarbeitet. Dennoch übernehmen Autoren und Verlag für die Richtigkeit von Angaben, Hinweisen und Ratschlägen sowie eventuelle Druckfehler keine Haftung.
Print ISBN: 978-3-527-71471-1ePub ISBN: 978-3-527-81425-1
Coverfoto: audy_indy – stock.adobe.comKorrektur: Petra Heubach-Erdmann, Düsseldorf
Andreas Dittfurth ist Autor verschiedener Bücher zu Microsoft- und Netzwerkthemen. Als langjähriger Microsoft Certified Trainer (MCT) arbeitet er im Bereich Netzwerk und Administration intensiv mit Windows Server und bezeichnet die PowerShell als weitreichendste und beste Entwicklung Microsofts. Seit über zwanzig Jahren arbeitet er im Bildungsbereich sowie als Consultant für Firmen, die er bei der Konzeption, Planung und Umsetzung von Bildungsprojekten mit virtuellen zwei- und dreidimensionalen Lernumgebungen unterstützt.
Cover
Titelseite
Impressum
Über den Autor
Einleitung
Über dieses Buch
Konventionen in diesem Buch
Was Sie nicht lesen müssen
Törichte Annahmen über den Leser
Wie dieses Buch aufgebaut ist
Symbole, die in diesem Buch verwendet werden
Wie es weitergeht
Teil I: Installation und erste Berührung mit der PowerShell
Kapitel 1 PowerShell Backstage
Geschichte der PowerShell
Projekt »Glaskugel«: Zukünftige Versionen
PowerShell-Entwicklerteam: Ein Ausblick
Welche PowerShell-Version Sie verwenden sollten
Kurz und knackig
Kapitel 2 Installation und Konsole
Die Windows-PowerShell-Konsole starten und testen
PowerShell Core installieren
Kurz und knackig
Kapitel 3 Etwas mehr Grafik, bitte!
Windows PowerShell ISE – bereits eingebaut und betriebsbereit
PowerShell Core – Visual Studio Code
Kurz und knackig
Kapitel 4 Konsole oder Komfort – eine Entscheidungshilfe
Eingabehilfen in der Konsole verwenden
Eingebaute Hilfen in Windows PowerShell ISE und Visual Studio Code
Welches Werkzeug andere Nutzer verwenden
Kurz und knackig
Teil II: PowerShell-Basiswissen
Kapitel 5 Gestatten – Cmdlet, PowerShell-Cmdlet
Cmdlets – die PowerShell-Befehle
Hilfe zur Selbsthilfe – PowerShell lässt Sie nicht allein
Unsicher? Get-Cmdlets sind sicher
Kurz und knackig
Kapitel 6 Objekte in der Pipeline
Überall Objekte
Fließbandarbeit – die PowerShell-Pipeline
Praxisanwendung: Komplexe Befehlskette schrittweise entwickeln
Kurz und knackig
Kapitel 7 Aliasse sind Spitznamen
Was sind Aliasse?
Vordefinierte Spitznamen
Spitznamen selbst ausgedacht
Spitznamen wieder löschen
Spitznamen ex- und importieren
Praxis: Tipps und Fallstricke
Kurz und knackig
Kapitel 8 Provider und Laufwerke
PowerShell Provider
Die Laufwerke in der PowerShell
Cmdlets zum Umgang mit Providern und Laufwerken
Kurz und knackig
Kapitel 9 Umgang mit Zeichenketten
Text in der PowerShell
Typfrage – womit habe ich es zu tun?
Benutzer nach Eingabe fragen
Ausgaben formatieren
Exkurs: Muster mit regulären Ausdrücken finden
Kurz und knackig
Kapitel 10 Bitte merken – PowerShell-Profile
Das Gedächtnis der PowerShell
Ausführungsrichtlinie für Skriptdateien
Praxis: Farben und Prompt dauerhaft ändern
Kurz und knackig
Teil III: Skripting mit PowerShell
Kapitel 11 Programmiergrundlagen
Variablen
Operatoren
Kontrollstrukturen
Kurz und knackig
Kapitel 12 PowerShell-Skripte
Skripte allgemein
Ausführen von Skripten
Erste eigene Skripte
Das Skriptverzeichnis $PSScriptRoot
Sicherheitsfunktionen für PowerShell-Skripte
Digital signierte Skripte
Geschwindigkeit verschiedener Ansätze testen
Anforderungen zur Skriptausführung definieren
Gültigkeit von Variablen und »Dot Sourcing«
Weitere Tipps zum Erstellen von Skripten
Eigenen Code kommentieren
Skripte mit Parametern verwenden
Skripte außerhalb der PowerShell starten
Kurz und knackig
Kapitel 13 Funktionen
Was sind Funktionen?
Kurz und knackig
Kapitel 14 PowerShell-Module
Module – die Grundlagen
Zusätzliche Module online finden, laden und installieren
Eigene Module verfassen und verwenden
Kurz und knackig
Teil IV: PowerShell-Spezialthemen
Kapitel 15 Fehlerbehandlung
Terminierende und nicht terminierende Fehler
Umgang mit bereits aufgetretenen Fehlern
Mögliche Fehler im Voraus behandeln
Kurz und knackig
Kapitel 16 PowerShell-Remoting – Let's Work Together
Fernzugriff allgemein
Voraussetzungen für PowerShell-Remoting
Remoting über WinRM
Remoting über SSH
Voraussetzungen geschaffen – mit Remoting arbeiten
Kurz und knackig
Kapitel 17 Objektorientierte Programmierung
Kurze Einführung und Begriffsklärung
Mit eigenen Klassen arbeiten
Kurz und knackig
Teil V: Der Top-Ten-Teil
Kapitel 18 Zehn grundlegende Tipps
Grundlagen beachten
Beim Ausprobieren protokollieren
Befehle in der History schnell finden
Standardverhalten für die Ausführung eines Cmdlets vorgeben
Tipps zum Erstellen von Skripten oder Funktionen
Eine Datei mit der verknüpften Anwendung öffnen
Skript-Variablen in der Konsole weiterverwenden
Dokumentation als guter Freund
In offiziellen Onlinequellen stöbern
Online suchen
Kapitel 19 10 (+ 5) weitere Tipps
Splatting verwenden
Bei Ausgaben genauere Informationen anzeigen
Berechnete Eigenschaften verwenden
Erhöhte Rechte einfach einsetzen
PowerShell unerwartet: Zufallszahlen
Reservierte Wörter
PowerShell Community Extensions (PSCX) testen
Für alle Betriebssysteme: Klasse [Environment] nutzen
Für alle Betriebssysteme: Schreibweise von macOS und Linux verwenden
Für alle Betriebssysteme: Keine Aliasse verwenden
Für alle Betriebssysteme: Das richtige Trennzeichen für PATH verwenden
Windows PowerShell: Schön war es
Windows PowerShell: Ergebnisse in einem eigenen Fenster öffnen
Windows PowerShell: Verwaltung des Active Directory
Windows PowerShell: Module in der Windows PowerShell
Stichwortverzeichnis
End User License Agreement
Kapitel 1
Tabelle 1.1: Die Versionen der PowerShell
Kapitel 4
Tabelle 4.1: Windowsweit bekannte Tastenkombinationen
Kapitel 6
Tabelle 6.1: Befehlskette schematisch
Kapitel 9
Tabelle 9.1: Textschnipsel in einfachen und doppelten Anführungszeichen
Tabelle 9.2: Verarbeitung von Variablen in Anführungszeichen
Tabelle 9.3: Unterausdrücke in Anführungszeichen
Tabelle 9.4: Der Backtick in Escape-Sequenzen
Tabelle 9.5: Beispiele für Sonderzeichen und ihre hexadezimalen Unicode-Werte
Tabelle 9.6: Beispiele für Objekttypen
Tabelle 9.7: Beispiele für die Methoden
Contains()
,
StartsWith()
und
EndsWith()
Tabelle 9.8: Formatierung von Zahlwerten
Tabelle 9.9: Formatierung des kompletten Datums (hier: 04.02.2019 19:42:05)
Tabelle 9.10: Formatierung von Teilen der Datumswerte (hier: 04.02.2019, 19:42:05)
Tabelle 9.11: Reguläre Ausdrücke: Zeichenklassen
Tabelle 9.12: Reguläre Ausdrücke: Auswahl an Platzhaltern
Tabelle 9.13: Reguläre Ausdrücke: Quantifizierer
Kapitel 10
Tabelle 10.1:
$HOME
und
$PSHOME
unter Linux, macOS und Windows
Kapitel 11
Tabelle 11.1: Beispiele automatischer Variablen
Tabelle 11.2: Wichtige Datentypen in der PowerShell
Tabelle 11.3: Zuweisungsoperatoren
Tabelle 11.4: Vergleichsoperatoren
Tabelle 11.5 Logische Operatoren
Kapitel 14
Tabelle 14.1: Modulverzeichnispfade unter Linux, macOS und Windows
Kapitel 16
Tabelle 16.1: Übersicht über die wichtigsten PSSession-Cmdlets
Kapitel 2
Abbildung 2.1: Windows PowerShell im Startmenü von Windows 10
Abbildung 2.2: Windows PowerShell suchen und einrichten mit Rechtsklick
Abbildung 2.3: Windows PowerShell mit Angaben zur Version
Abbildung 2.4: Konfiguration der Schriftart in der Konsole
Abbildung 2.5: Konfiguration der Optionen bei der Installation
Abbildung 2.6: PowerShell Core unter Windows mit Angaben zur Version
Abbildung 2.7: PowerShell Core unter Linux (Ubuntu 18.04) mit Angaben zur Version
Abbildung 2.8: PowerShell Core unter macOS 10.12 mit Angaben zur Version
Abbildung 2.9: Änderung des Terminal-Farbprofils mit dunklem Hintergrund
Kapitel 3
Abbildung 3.1: Start der Windows PowerShell ISE durch Aufruf aus der Konsole
Abbildung 3.2: Download von Visual Studio Code
Abbildung 3.3: Visual Studio Code beim ersten Start
Abbildung 3.4: Nachinstallation der Unterstützung für die Programmiersprache PowerShell
Abbildung 3.5: Visual Studio Code unterstützt hier reine Textdateien.
Abbildung 3.6: Visual Studio Code nach aktivierter Sprachunterstützung für PowerShell
Abbildung 3.7: Versionsprüfung einer neu eingestellten PowerShell-Version in Visual Studio Code
Abbildung 3.8: Nachinstallation des deutschen Sprachpakets für VS Code
Kapitel 4
Abbildung 4.1: IntelliSense im Einsatz (hier: Windows PowerShell ISE)
Abbildung 4.2: Befehls-Add-On in der Windows PowerShell ISE
Kapitel 5
Abbildung 5.1: Verfügbare Module unter Linux
Abbildung 5.2: Hilfedateien unter Linux herunterladen und installieren
Kapitel 6
Abbildung 6.1:
Get-Member
listet Methoden und Eigenschaften auf.
Abbildung 6.2: Liste der
Object
-Cmdlets
Abbildung 6.3: Laufende Dienste unter Windows
Kapitel 8
Abbildung 8.1: Die installierten Provider unter Linux
Abbildung 8.2: Provider unter Windows
Abbildung 8.3: Laufwerke in einer PowerShell-Sitzung unter Windows
Abbildung 8.4: Sichtbare Änderung in der Windows-Registry
Kapitel 9
Abbildung 9.1: Eingabe der Anmeldeinformationen in der Windows PowerShell
Kapitel 10
Abbildung 10.1: Die Profilskripte der PowerShell unter macOS
Abbildung 10.2: Profilskript unter Windows anlegen
Abbildung 10.3: Farbeinstellung für PowerShell-Meldungen unter Windows
Kapitel 12
Abbildung 12.1: Digital signiertes PowerShell-Skript
Abbildung 12.2:
certmgr.msc
mit dem gerade erstellten Zertifikat
Abbildung 12.3: Selbst signiertes, nicht vertrauenswürdiges Zertifikat
Kapitel 14
Abbildung 14.1: Startseite der PowerShell Gallery
Cover
Inhaltsverzeichnis
Begin Reading
C1
1
2
3
4
5
6
9
10
11
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
367
368
369
370
E1
Ich freue mich, gemeinsam mit Ihnen die PowerShell zu erkunden. Nach der Lektüre dieses Buches und eigenen, ausführlichen Übungen werden Sie die Grundlagen der PowerShell beherrschen, die Programmiergrundlagen kennen und eigene Skripte und Module schreiben können. Zudem erhalten Sie Einblicke in einige Spezialthemen der PowerShell. Ich wünsche Ihnen viel Spaß bei der Beschäftigung mit diesem spannenden Thema.
Das Buch möchte zunächst Ihr Begleiter bei der interaktiven Arbeit in der PowerShell sein, um dann zum Ratgeber bei der Entwicklung mehrzeiliger Skripte und Problemlösungen zu werden. Ich habe alle Einheiten so konzipiert und aufgeteilt, dass Sie im Inhaltsverzeichnis, aber auch im Stichwortverzeichnis schnell die momentan für Sie interessanten Informationen finden können.
Dieses Buch ist konzipiert als Einführung in die PowerShell. So weit, so gut. Allerdings gibt es einerseits die Windows PowerShell, die nur unter Windows lauffähig und seit dem Jahr 2016 unverändert ist. Andererseits ist die PowerShell zusätzlich in veränderter Form unter dem Namen PowerShell Core unter den Betriebssystemen Linux, macOS und Windows verfügbar. Die Neuentwicklung für alle gängigen Betriebssysteme hat ihren Preis: PowerShell Core ist momentan noch nicht so leistungsfähig wie ihr großer Windows-Bruder. Sie wird erst im Laufe der Zeit den Windows-Vorgänger in ihrer Leistungsfähigkeit überholen und ablösen können.
Neu oder alt, nur Windows oder alle Plattformen? Die Entscheidung in Redmond, dem Firmensitz von Microsoft, ist klar: Dort setzt man künftig auf PowerShell Core. Trotzdem ist für Sie als Windows-Nutzer der direkte und sofortige Umstieg der beste Weg, und Nutzer von Linux und macOS können nicht erwarten, sofort mit vollem PowerShell-Funktionsumfang an Bord zu sein.
Ich habe mich entschieden, Ihnen die Syntax und den Leistungsumfang der Skriptsprache PowerShell zu zeigen, und zwar vornehmlich am neuesten Produkt PowerShell Core. Um Ihnen die volle Leistungsfähigkeit zeigen zu können, werde ich aber gelegentlich Beispiele und Erläuterungen bringen müssen, die nur unter der Windows PowerShell lauffähig sind.
Ich bin mir des Spagats bewusst. Folgt die Entwicklung von PowerShell Core als Open-Source-Produkt aber den Erwartungen, wird er in drei bis fünf Jahren überflüssig sein.
In diesem Buch finden Sie eine Vielzahl an PowerShell-Befehlen und -Anwendungsbeispielen. Zur besseren Lesbarkeit werden diese Textstellen vom Rest des Buchtexts durch eine besondere Schrift abgehoben, die so aussieht:
PowerShell-Befehlszeile
Manchmal finden Sie in diesen Textstellen kursive Begriffe wie beispielsweise C:\Programme\PowerShell\Hauptversion. In diesen Fällen handelt es sich um einen Platzhalter, der durch die konkrete Angabe ersetzt werden muss, wie hier C:\Programme\PowerShell\6.
Finden Sie in den Textstellen mit PowerShell-Befehlen fett gesetzte Passagen, sind sie besonders wichtig, und ich möchte Sie auf diese Stellen besonders aufmerksam machen. Neu eingeführte Fachbegriffe sind kursiv ausgezeichnet, Menübefehle als KAPITÄLCHEN dargestellt.
Dieses Buch folgt der Reihenfolge, wie Sie bei Installation, erster Berührung und genauerem Kennenlernen der PowerShell vorgehen würden. Wenn Sie bereits erste Berührungen mit der PowerShell hatten, können Sie den ersten Teil querlesen, um vielleicht doch die eine oder andere Neuigkeit aufzuschnappen. Das Buch ist möglichst modular aufgebaut: Sie können also jedes Kapitel, das Sie besonders interessiert, einzeln lesen und müssen sich in den meisten Fällen nicht an die geschriebene Reihenfolge halten.
Verstehen Sie das Buch als eine Art Speisekarte, aus der Sie sich das herauspicken können, was Sie gerade besonders interessiert. Ein komplettes Durchlesen von vorn bis hinten kann Spaß machen, ist aber nicht unbedingt erforderlich. Über das Inhalts- und Stichwortverzeichnis können Sie schnell die momentan für Sie interessanten Informationen finden.
Auch wenn Sie sich in einigen Themen zu Hause fühlen, empfehle ich Ihnen, durch dazugehörige Kapitel zumindest durchzublättern. Wer weiß schon, ob sich nicht doch noch interessante Details oder Zusammenhänge finden lassen?
Immer wenn Sie den jungen Mann mit Brille sehen, können Sie sich auf die Erläuterung des technischen Hintergrunds eines Sachverhalts einstellen. Manche Leser finden gerade das besonders spannend, andere möchten sich bei der ersten Lektüre damit nicht belasten. Wenn Sie mal schneller vorankommen möchten, rate ich Ihnen, diese technischeren Passagen zu ignorieren. Sie sind mehr für den Blick über den Tellerrand gedacht.
In Büchern der … für Dummies-Reihe werden anspruchsvolle Themen verständlich präsentiert, ohne dass vom Leser übertrieben viel Vorwissen erwartet wird. Diesen bewährten Weg schlage ich auch mit diesem Buch ein.
Trotzdem gehe ich davon aus, dass Sie sich in Ihrem Betriebssystem gut auskennen – sei es Windows, Linux oder macOS. Außerdem haben Sie idealerweise schon mit Computernetzwerken gearbeitet. Ich erwarte nicht, dass Sie ein erfahrener Administrator sind oder programmieren können. PowerShell-Vorkenntnisse werden selbstverständlich nicht vorausgesetzt.
Das Buch besteht aus fünf Teilen, die jeweils mehrere Kapitel haben. Die Inhalte reichen von der Installation und dem ersten Aufruf der PowerShell bis hin zum Skripting. Spezialthemen und Anwendungsbeispiele runden das Buch ab.
Teil I hilft Ihnen bei Installation und Inbetriebnahme von PowerShell Core unter Windows, Linux und macOS. Darüber hinaus erfahren Sie, welche Bestandteile Sie unter Windows verwenden, wenn Sie die Windows PowerShell einsetzen.
In Teil II lernen Sie die Sprachelemente der PowerShell kennen. Sie lesen, wie Sie mit PowerShell-Befehlen arbeiten, Objekte über die Pipeline übergeben, mit Aliassen und Profilen arbeiten, Texte bearbeiten und was PowerShell-Provider und -Laufwerke sind.
Teil III führt in die Programmierung mit der PowerShell ein. Sie lernen den Umgang mit Skripten und entwickeln eigene Skripte und Module.
Teil IV zeigt Ihnen anhand ausgewählter Spezialthemen fortgeschrittene Techniken der PowerShell.
Teil V enthält nützliche Listen und gibt Hinweise, was Sie bei der Arbeit mit der PowerShell beachten sollten.
Dieses Symbol kennzeichnet Beispiele und wird Ihnen sehr häufig begegnen. Jedes vorgestellte Sprachelement wird mithilfe mehrerer Beispiele beschrieben. Manchmal greifen die Beispiele den Kapiteln ein wenig vor. Sie sollen Lust auf mehr machen. Nehmen Sie die Beispiele als Vorlage für eigene, ausgiebige Experimente.
Wenn Sie etwas beachten sollen oder berücksichtigen müssen, sehen Sie dieses Symbol. Werfen Sie auf jeden Fall einen kurzen Blick auf diese Absätze.
Hier finden Sie Informationen, die technischer Natur sind oder über Einsteigerwissen hinausgehen. Lesen Sie diese Abschnitte, wenn Sie über den Tellerrand schauen wollen. Für das Verständnis anderer Teile des Buches sind diese Passagen nicht unbedingt erforderlich.
Hier gibt es zusätzliche Informationen, Tipps oder geschickte Lösungen für bestimmte Situationen. Es lohnt sich immer, einen Blick darauf zu werfen.
Nur Windows PowerShell! Das Symbol weist darauf hin, dass dieses Beispiel oder diese Passage ausschließlich unter Windows in der Windows PowerShell funktioniert.
Damit Sie die Codebeispiele nicht abtippen müssen, finden Sie die Beispiele aller Kapitel zum Download unter der Adresse https://www.wiley-vch.de/ISBN9783527714711.
Und jetzt wünsche ich Ihnen viel Spaß bei der PowerShell, und zwar nicht nur beim Lesen, sondern auch beim ausführlichen Testen!
Teil I
IN DIESEM TEIL …
Was die PowerShell ist und wie sie sich entwickelt hatWarum es die Windows PowerShell und PowerShell Core gibtWie Sie mit der Windows PowerShell in Konsole und grafischer Oberfläche arbeitenWie Sie PowerShell Core unter den Betriebssystemen Windows, Linux und macOS installieren, starten und konfigurierenWie Sie Visual Studio Code als grafisches Programm für PowerShell Core installieren und konfigurierenWas die PowerShell-Konsole von der grafischen Umgebung unterscheidet und was Sie zu welchem Zweck einsetzen könnenKapitel 1
IN DIESEM KAPITEL
Was ist die PowerShell?
Geschichte und Versionen der PowerShell
Windows PowerShell und PowerShell Core
Ausblick auf die zukünftige Entwicklung
Bevor Sie sich intensiv mit inhaltlichen Dingen in der PowerShell beschäftigen, erfahren Sie einige Dinge zu ihrem Hintergrund, die Ihnen einzuordnen helfen, was die PowerShell ist und warum sie sich so entwickelt hat, wie sie es getan hat.
Sie erhalten in diesem Kapitel kurze Einblicke zur Geschichte der PowerShell und zu den Absichten der Entwickler. Ich kläre, warum es die Windows PowerShell und PowerShell Core gibt und wie sie zusammenhängen. Letztlich erhalten Sie einen Ausblick auf zukünftige Versionen der PowerShell und eine Empfehlung, welche Sie einsetzen sollten.
Für Eilige, die bereits alle vorbereitenden Aufgaben erledigt haben und sofort mit dem Eintippen erster Befehle in der PowerShell beginnen wollen:
Beginnen Sie mit Teil II und schauen Sie in den Kapiteln des ersten Teils später wieder vorbei. In diesem Teil installieren Sie Ihre Arbeitsumgebung und richten sie so ein, dass Sie inhaltlich loslegen können.
PowerShell wurde speziell für die Systemverwaltung und -automatisierung entworfen. Sie erlaubt Zugriff auf WMI-Klassen, COM-Objekte sowie auf das gesamte .NET Framework. Die PowerShell verbindet die aus Unix-Shells bekannte Philosophie von Pipes und Filtern mit objektorientierter Programmierung.
Adressiert werden gleichermaßen Administratoren und Programmierer. Vornehmlich Administratoren können weiterhin einfache Befehle an einer Kommandozeile ausführen und miteinander verknüpfen. Vornehmlich Programmierer können komplexe Skripte mit der eigens dafür entwickelten PowerShell Scripting Language schreiben.
Um zu verstehen, welches Konzept hinter der PowerShell steht, schauen wir kurz auf die Situation unter Windows um die Jahrtausendwende:
Es gibt eine bereits aus DOS-Zeiten bekannte Eingabeaufforderung
(auch
Kommandozeile
genannt) mit etwas erweitertem Funktionsumfang. Sie bietet einige Standardbefehle und ermöglicht das Ausführen weiterer Konsolenanwendungen.
Es existiert eine einfache, relative beschränkte Skriptsprache zur Automatisierung von Aufgaben. Über die Eingabeaufforderung sind jedoch nicht alle Funktionalitäten der grafischen Benutzeroberfläche erreichbar, sodass nicht alle Aufgaben automatisiert werden können.
Mit Windows Server 2003 sind viele Funktionen auch per Eingabeaufforderung verfügbar, die Limitierung der Skriptsprache und Inkonsistenzen in der Bedienung verschiedener Konsolenanwendungen erschweren aber eine effektive Administration. Die Limitierung der Skriptsprache versuchte Microsoft durch Einführung von
Windows Script Host
zu überwinden, erreichte damit aber eher Skriptentwickler und kaum Administratoren.
In dieser Umgebung entwickelte Jeffrey Snover 2002 die Idee einer Plattform der nächsten Generation für die administrative Automatisierung. Traditionelle Verwaltungsprobleme sollten durch Nutzung der von Microsoft um das Jahr 2000 bereitgestellten .NET-Plattform gelöst werden.
Snover hatte nicht nur die Skriptentwickler im Blick, sondern erwartete erhebliche Vorteile auch für Tester, Power-User und Administratoren.
Das Produkt unter dem vorläufigen Namen Monad nutzt die .NET Common Runtime, um ein mächtiges, konsistentes, intuitives, erweiterbares und nützliches Werkzeug bereitzustellen, das die Administrationskosten senkt und das Leben von Nicht-Programmierern erheblich vereinfacht.
Jeffery Snover hat sein Konzept unter dem Titel Monad Manifesto festgehalten. Allen, die am Hintergrund der Entwicklung der PowerShell und den Ideen des Entwicklers besonderes Interesse haben, sei das 16-seitige Papier zur Lektüre empfohlen. Sie finden es unter anderem unter folgender Adresse: https://www.jsnover.com/Docs/MonadManifesto.pdf.
Folgende Punkte sollten bei der Umsetzung der Ziele helfen:
Administratoren können Befehle schneller und einfacher programmieren, da Monad viele Standardaufgaben von Befehlen übernimmt und durch einen einheitlichen Parser Konsistenz bietet.
Strukturierte Daten (Objekte) werden anstelle von unstrukturierten Daten (Text) zur Weiterverarbeitung bereitgestellt.
Skripte können nicht nur lokal, sondern auf einer Vielzahl von Remotecomputern ausgeführt werden.
Anwender können auch eine grafische Oberfläche nutzen.
Sie vermuten es sicherlich bereits: Die Rede ist von der PowerShell. 2006 erfolgt die Umbenennung von Monad in PowerShell.
Im selben Jahr legt Microsoft fest, dass Microsoft Exchange Server 2007 per PowerShell administriert wird und auch die grafische Benutzeroberfläche auf PowerShell aufsetzt. Die Windows PowerShell Version 1 wird veröffentlicht und zum Download angeboten.
2007 wird die Windows PowerShell Teil von Microsofts Kriterienkatalog (Common Engineering Criteria), dem jedes Microsoft-Server-Produkt entsprechen soll. Jedes Server-Produkt von Microsoft soll von nun an PowerShell unterstützen.
Dies bedeutet ab 2009 für die Windows PowerShell ab Version 2 den endgültigen Durchbruch als zentrales Verwaltungs- und Automatisierungswerkzeug in Windows-Betriebssystemen. Sie wird ab sofort als fester Bestandteil von Windows-Betriebssystemen ausgeliefert.
Sie haben bereits jetzt den Begriff PowerShell in den Varianten PowerShell, Windows PowerShell und PowerShell Core kennengelernt. Das soll Sie nicht verwirren, sondern durch bedachte Wahl für Klarheit sorgen.
Im weiteren Verlauf des Buches werden Sie den Begriff PowerShell in verschiedenen Varianten für unterschiedliche Kontexte lesen:
PowerShell:
allgemein, bezeichnet das Gesamtprodukt und gilt für jede Version
Windows PowerShell:
bezeichnet die mit den Windows-Betriebssystemen ausgelieferte PowerShell, die ausschließlich unter Windows lauffähig ist
PowerShell Core:
das neue Open-Source-Projekt, das plattformunabhängig auf den Betriebssystemen Windows, Linux und macOS installiert werden kann
Ab Version 2 steht die Windows PowerShell als Bestandteil des Windows Management Frameworks mit der jeweils identischen Versionsnummer zum Download bereit. Damit kann eine neuere Version der Windows PowerShell auch auf älteren Betriebssystemversionen installiert werden.
Ab Windows PowerShell Version 3 können neuere Versionen der Windows PowerShell nachträglich auf Betriebssystemen ab Windows 7 beziehungsweise Windows Server 2008 (R2) installiert werden.
Bei der Windows PowerShell folgen Version 5 und Version 5.1 zeitlich relativ eng aufeinander. Das liegt daran, dass Windows Server 2016 erst später als Windows 10 erschien. In den Monaten zwischen Erscheinen von Windows 10 und Windows Server 2016 hat sich die Windows PowerShell weiterentwickelt. Letztlich hat man sich entschieden, Windows Server 2016 direkt mit PowerShell Version 5.1 auszuliefern und unter Windows 10 ein Update auf Version 5.1 vorzunehmen.
Die Windows PowerShell wird in der Windows-Welt zu dem Werkzeug für Administratoren und Programmierer. Fast alles ist bei der System- und Netzwerkverwaltung mit der Windows PowerShell möglich, Anwendungen bringen ihren eigenen Satz an PowerShell-Befehlen für die Verwaltung mit. Einige Einstellungen können ausschließlich über die PowerShell vorgenommen werden.
Im ersten Erscheinungsjahr 2006 ist die PowerShell als Produkt und Sprache zwar noch sehr jung, aber seit Version 5.1 gilt sie als fertig und abgeschlossen.
Die Windows PowerShell hat nachhaltig die Windows-Welt beeinflusst und beispielsweise die Arbeit von Windows-Administratoren deutlich verändert.
Sie lesen an verschiedenen Stellen, dass die Entwicklung der PowerShell unter Windows eingestellt oder nicht weiterentwickelt wird. Das könnte den Eindruck erwecken, dass ein unfertiges Produkt, das vielleicht nicht gut genug ist, aus dem Verkehr gezogen werden soll.
Das ist nicht korrekt. Bereits vor Fertigstellung der Version Windows PowerShell 5.1 äußerten sich Erfinder Jeffrey Snover und sein Projektteam auf verschiedenen Konferenzen dahin gehend, dass sie alles umgesetzt haben, was sie sich mit der Windows PowerShell vorgenommen haben (»we're done!«).
Es wird unter Windows keine neuen Versionen geben, da es sich um ein fertiges Produkt handelt. Mit einer weiteren Unterstützung und der Bereinigung auftretender Fehler ist zu rechnen.
2016 verkündet Microsoft, dass PowerShell unter der sogenannten MIT-Lizenz nunmehr Open Source und plattformübergreifend entwickelt wird. Das Produkt heißt jetzt PowerShell Core, die Versionszählung beginnt mit Version 6.0 und setzt damit die Versionszählung der Windows PowerShell fort. Veröffentlicht wird PowerShell Core auf einer Plattform für Projekte aus der Software-Entwicklung, dem Onlinedienst GitHub. Die erste Version von PowerShell Core (Version 6.0) erschien Anfang 2018, Version 6.1 bereits etwa neun Monate später.
Microsoft trägt damit seiner Cloud-Strategie (»Mobile first, Cloud first«) Rechnung und möchte PowerShell für diese heterogenen Umgebungen als universelles Werkzeug für alle Administratoren anbieten, gleich welches Betriebssystem oder welche Anwendung administriert werden soll.
Eine plattformübergreifende Bereitstellung der PowerShell hat auch zur Konsequenz, dass das .NET Framework nicht zur Verfügung steht, da es ausschließlich für Windows verfügbar ist. Um eine ähnliche Funktionalität auch für andere Betriebssysteme zur Verfügung zu stellen, entwickelte Microsoft die Frame-Variante .NET Core.
.NET Core wurde von Grund auf neu entwickelt und hatte zu Beginn des Jahres 2015 etwa ein Zehntel der Funktionalität des klassischen .NET Frameworks.
Durch eine leichtere Portierbarkeit auf Microsoft-fremde Plattformen sowie die Entwicklung als Open-Source-Projekt unter Beteiligung der weltweiten Entwicklergemeinschaft scheint .NET Core die ideale Basis für PowerShell Core zu sein.
Tabelle 1.1 gibt Ihnen einen Überblick über die PowerShell-Versionen und zeigt, wo und wann die einzelnen Versionen erschienen sind.
Version
Vorinstalliert?
Erscheinungsjahr
1
Windows PowerShell
Nein, Download für Windows-Betriebssysteme ab Windows XP SP2
2006
2
Windows PowerShell
Ja, unter Windows 7 und Windows Server 2008 R2
2009
3
Windows PowerShell
Ja, unter Windows 8 und Windows Server 2012
2012
4
Windows PowerShell
Ja, unter Windows 8.1 und Windows Server 2012 R2
2013
5
Windows PowerShell
Ja, unter Windows 10
2015
5.1
Windows PowerShell
Ja, unter Windows 10 (Build 1607) und Windows Server 2016
2016
6
PowerShell Core
Nein, Downloadpaket für Windows, Linux und macOS
2018
6.1
PowerShell Core
Nein, Downloadpaket für Windows, Linux und macOS
2018
Tabelle 1.1: Die Versionen der PowerShell
Die Versionen 1 bis 5.1 markieren seit 2006 die Zeit der PowerShell als Komponente ausschließlich in Windows-Betriebssystemen mit tiefer Einbindung ins System durch die Basis .NET Framework.
2018 bedeutet den Wendepunkt für die PowerShell. Als PowerShell Core beginnt mit der Version 6.0 eine neue Zeitrechnung als plattformübergreifende Open-Source-Software. Durch das neue, noch nicht annähernd so mächtige .NET Core beginnt eine neue Reise mit momentan (noch) verminderter Leistungsfähigkeit.
Es ist sicher, dass es keine neuen Versionen der Windows PowerShell geben wird. Die Zukunft liegt bei der plattformübergreifenden Open-Source-Variante PowerShell Core.
Lassen Sie mich einen Blick in die Glaskugel wagen, welche Entwicklung die PowerShell in den nächsten Jahren wahrscheinlich nehmen wird.
Da die Windows PowerShell die Windows-Welt der letzten Jahre nachhaltig geprägt hat, wird sie nicht aus Windows-Systemen verschwinden.
Die Windows PowerShell stellt ein fertiges Produkt dar, es erscheinen nur noch Fehlerbehebungen und Sicherheitsupdates.
Windows PowerShell und PowerShell Core finden mittelfristig unter dem Namen PowerShell zusammen.
Durch die Einbindung der weltweiten Entwicklergemeinschaft des Open-Source-Projekts PowerShell Core entwickelt sich PowerShell Core schnell zu einem wichtigen Tool für alle beteiligten Betriebssysteme.
.NET Core wird weiterentwickelt und liefert PowerShell Core deutlich mehr Funktionalität.
Administratoren von Linux und macOS fragen sich immer weniger, warum sie sich mit PowerShell Core beschäftigen sollen.
PowerShell entwickelt sich zu einem ernst zu nehmenden Werkzeug für beteiligte Betriebssysteme und die Cloud und hat ihre Stärken in heterogenen Umgebungen.
Sie können mich in einigen Jahren gern ansprechen, wie falsch ich doch gelegen hätte. Ich werde alles auf meine Glaskugel schieben …
Meine eigenen Einschätzungen in Ehren, ich möchte Ihnen allerdings aktuelle Einschätzungen des Microsoft-Entwicklerteams nicht vorenthalten. Die folgenden Aussagen stammen vom PowerShell-Erfinder Jeffrey Snover aus seiner Keynote zur europäischen PowerShell-Konferenz in Hannover im April 2018:
PowerShell war noch nie so wichtig wie heute (2018).
Die neue Mission für die PowerShell lautet: Unterstützung der digitalen Transformation. Verwalten Sie von
jedem
Client aus
jeden
Server oder Dienst, der in einer
beliebigen
Cloud ausgeführt wird. Oder bei Verwendung vor Ort: Verwalten Sie
jeden
Hypervisor,
jeden
Speicher und
jedes
Netzwerk.
Was wird aus der Windows PowerShell?
Die Entwicklung der Windows PowerShell ist abgeschlossen.
Windows PowerShell bleibt vollständig unterstützt (wahrscheinlich für immer).
Es gibt keine Entwicklung weiterer Features.
Es gibt nur noch Sicherheitsupdates und Fehlerbehebungen.
Alle Weiterentwicklungen erfolgen in PowerShell (Core).
Vorhersagen:
PowerShell Core wird in PowerShell umbenannt.
Linux-Distributionen enthalten zukünftig PowerShell.
Die Folien des Vortrags, aus dem ich zitiert habe, finden Sie unter der Adresse https://github.com/psconfeu/2018/blob/master/Jeffrey%20Snover/Keynote_psconfeu_2018.pdf. Wenn Sie den Vortrag als Video anschauen wollen, besuchen Sie die Adresse https://www.youtube.com/watch?v=zy4fDSdrM7M.
Just zum Redaktionsschluss dieses Buchs veröffentlicht Microsoft die Mitteilung, dass mit der noch für 2019 geplanten Version 7 von PowerShell Core die erwartete Umbenennung in PowerShell vorgenommen werden soll. Hinsichtlich des Funktionsumfangs sind keine großen Neuerungen geplant.
Mittelfristig soll PowerShell 7 neben Windows PowerShell 5.1 Bestandteil von Windows werden.
Für Sie bedeutet das bei der Lektüre:
Alle beschriebenen Inhalte sind selbstverständlich nach wie vor gültig.
Achten Sie auf die PowerShell-Versionsnummern: Versionen ab 6 sind PowerShell (Core), Versionen bis 5.1 Windows PowerShell.
Da zukünftige Versionen nicht »PowerShell Core«, sondern »PowerShell« heißen werden, verstehen Sie den Zusatz »Core« bitte als Hinweis, dass es sich hierbei um die plattformübergreifende moderne PowerShell handelt und nicht um die auf Windows beschränkte Windows PowerShell.
Wenn Sie ein aktuelles Windows-Betriebssystem verwenden, auf dem die Windows PowerShell vorinstalliert ist, spricht momentan alles dafür, diese zu verwenden. Durch die tiefe Einbettung in das Windows-System durch das .NET Framework stehen Befehle und Funktionen für alle denkbaren Aufgaben zur Verfügung. Zudem unterscheiden sich die Windows PowerShell und PowerShell Core syntaktisch nicht. PowerShell Core kann momentan nur einen deutlich kleineren Befehlssatz verwenden, der erst nach und nach erweitert werden wird. Wieso also momentan auf die vorhandenen Möglichkeiten in Windows-Systemen verzichten?
Wenn Sie PowerShell Core kennenlernen, mit der Windows PowerShell vergleichen oder sich mit der Administration heterogener Umgebungen vertraut machen möchten, können Sie PowerShell Core auf Windows-Systemen parallel zur Windows PowerShell installieren und betreiben.
Als Nutzer von Linux oder macOS führt kein Weg an PowerShell Core vorbei, da Ihnen die Windows PowerShell dort nicht zur Verfügung steht. Auch wenn PowerShell Core momentan noch nicht an die Funktionalität der Windows PowerShell heranreicht, können Sie sehr gut die Syntax und das Konzept der PowerShell kennenlernen und die stetige Funktionserweiterung begleiten.
Übrigens: Alle verwendeten Befehle und Beispiele im Buch funktionieren sowohl unter den Versionen der Windows PowerShell als auch der PowerShell Core.
Die PowerShell hat mit ihrer Kombination aus konsistentem Werkzeug für Administrations- und Automatisierungsaufgaben in Windows sowie eigener Skriptsprache eine große Lücke in der Windows-Welt gefüllt und den Arbeitsalltag von Windows-Administratoren und -Entwicklern verändert.
Bis zu Windows PowerShell Version 5.1 basiert die PowerShell auf .NET Framework und ist ausschließlich für Windows-Betriebssysteme verfügbar.
Ab Version 6.0 basiert die PowerShell Core auf .NET Core, ist Open Source und auch für Linux und macOS verfügbar.
Im nächsten Kapitel erfahren Sie, wo Sie in Windows die PowerShell finden und wie Sie sie auf den verschiedenen Systemen installieren.
Kapitel 2
IN DIESEM KAPITEL
Windows PowerShell starten und konfigurieren
PowerShell Core unter Windows installieren, starten und konfigurieren
PowerShell Core unter Linux installieren, starten und konfigurieren
PowerShell Core unter macOS installieren, starten und konfigurieren
Die erste Berührung mit der PowerShell findet in der Regel in der Konsole statt. Entweder sind Sie neugierig, was sich hinter der Anwendung PowerShell verbirgt, und rufen sie kurz auf, oder Sie wollen gezielt und schnell interaktiv Befehle verwenden.
Genau für diese Zwecke bietet sich die Konsole an: interaktive Arbeit, einzeilige Befehle. Es überrascht Sie sicherlich nicht, zu erfahren, dass viele Administratoren die PowerShell genau auf diese Art und Weise verwenden.
In diesem Kapitel zeige ich Ihnen, wie Sie die Konsole der Windows PowerShell starten und konfigurieren. Des Weiteren beschreibe ich die Installation, den Start und die Konfiguration von PowerShell Core unter den Betriebssystemen Windows, Linux und macOS.
Sie sind noch mitten in der Installation und Einrichtung der PowerShell, aber auch beim ersten Start von Konsole oder grafischer Oberfläche möchten Sie sicherlich bereits ein wenig testen. Aus diesem Grund möchte ich Ihnen einige Befehle zum Ausprobieren – und ohne weitere Erläuterung der Syntax – vorstellen. Ab Teil II des Buches arbeiten wir inhaltlich.
$PSVersionTable
Zeigt die aktuell verwendete Version der PowerShell an.
Get-Command
Listet alle verfügbaren PowerShell-Befehle auf.
Get-TimeZone
Informiert, welche Zeitzone auf Ihrem Rechner eingestellt ist.
Get-ChildItem
Zeigt alle Ordner und Dateien im aktuellen Ordner.
Get-Uptime
Gibt Informationen, wie lange Rechner oder virtuelle Maschine bereits laufen. Dies ist einer der Befehle, die erst mit PowerShell Core zur Verfügung stehen. Führen Sie den Befehl in der Windows PowerShell aus, erhalten Sie eine Fehlermeldung.
Sofern Sie einen aktuelleren Windows-Rechner verwenden, ist die Windows PowerShell bereits installiert. Sie finden das Programm unter Windows 10 als Gruppe im Startmenü (siehe Abbildung 2.1) mit Einträgen zur Windows PowerShell (Konsole) und Windows PowerShell ISE (Code-Editor mit Windows-basierter grafischer Benutzeroberfläche).
Abbildung 2.1: Windows PowerShell im Startmenü von Windows 10
Die Windows PowerShell bietet sowohl für die Konsole als auch die grafische Entsprechung Windows PowerShell ISE eine zusätzliche 32-Bit-Variante. In den Menüeinträgen sind sie als »(x86)« gekennzeichnet. Diese Einträge können Sie ignorieren. Sie benötigen sie nur in Spezialfällen wie der Remoteverbindung mit einem 32-Bit-Computer oder der Verwendung eines zumeist alten Moduls, das die 32-Bit-Version verlangt.
Um eine Windows-PowerShell-Konsole zu starten, klicken Sie mit der linken Maustaste auf den Eintrag WINDOWS POWERSHELL.
Wenn Sie die Einträge im Startmenü nicht finden oder eine ältere Windows-Version verwenden, bei denen sich die PowerShell an anderer Stelle versteckt, können Sie sich mit einer Suche helfen.
Betätigen Sie die -Taste, um das Startmenü von Windows zu öffnen.
Geben Sie den Suchbegriff powershell ein und warten Sie darauf, dass sich das Startmenü gemäß Ihrer Eingabe verändert.
Ist die Windows PowerShell auf dem System vorhanden, wird die Konsolenanwendung Windows PowerShell als höchste Übereinstimmung angezeigt. Direkt darunter wird die Windows PowerShell ISE angezeigt. Beide Programme können Sie durch Mausklick öffnen.
Ein Rechtsklick auf eine der Anwendungen öffnet ein Kontextmenü (siehe
Abbildung 2.2
), das Ihnen unter anderem ermöglicht, die Anwendung als Administrator zu starten und sie an das Startmenü oder an die Taskleiste anzuheften.
Abbildung 2.2: Windows PowerShell suchen und einrichten mit Rechtsklick
Richten Sie sich die Windows PowerShell so ein, dass Sie sie schnell finden und ausführen können.
Alternativ können Sie die Windows PowerShell über den Windows-Explorer ausführen. Standardmäßig ist sie im Verzeichnis C:\Windows\System32\WindowsPowerShell\v1.0 installiert. Zum Start der Konsole klicken Sie doppelt auf die Datei powershell.exe in diesem Ordner.
Zum Testen der unterschiedlichen Versionen der PowerShell, die ich hier vorstelle, geben Sie nach dem Start der Konsole
$PSVersionTable
ein und senden die Eingabe durch ab. Bei $PSVersionTable handelt es sich um eine integrierte Variable, die ausführliche Informationen zur verwendeten PowerShell-Version enthält.
In Abbildung 2.3 sehen Sie in der Zeile der Eigenschaft PSEdition, dass es sich um die Desktopversion der PowerShell handelt, also die Windows PowerShell in der Version 5.1 (Wert der Eigenschaft PSVersion).
Abbildung 2.3: Windows PowerShell mit Angaben zur Version
Sie können mit wenigen Schritten in der Konsole die Schriftart, Schriftgröße, Fenstergröße oder Farbgebung ändern. Gehen Sie wie folgt vor:
Klicken Sie mit der rechten Maustaste in die Titelleiste des Konsolenfensters.
Es öffnet sich ein Kontextmenü.
Wählen Sie aus dem Kontextmenü den untersten Eintrag EIGENSCHAFTEN mit der linken Maustaste aus.
Es öffnet sich das Eigenschaftenfenster der Windows-PowerShell-Konsole.
Nehmen Sie die gewünschten Anpassungen auf den Registerkarten mit den aussagekräftigen Bezeichnungen
OPTIONEN
,
SCHRIFTART
,
LAYOUT
und
FARBEN
vor und bestätigen Sie die Änderungen mit der Schaltfläche
OK
. In
Abbildung 2.4
sehen Sie beispielhaft die Registerkarte
SCHRIFTART
zur Einstellung von Schriftart und -größe der Konsole.
Abbildung 2.4: Konfiguration der Schriftart in der Konsole
Da ein Konsolenfenster für die Anzeige von Schrift auf einem einfarbigen Hintergrund konzipiert ist, gibt es keine weiterreichenden Möglichkeiten zur Konfiguration, wie Sie es von Windows-Programmen kennen.
Die PowerShell Core steht als plattformübergreifendes Open-Source-Projekt für Windows, Linux und macOS zur Verfügung. In jeder der genannten Umgebungen muss sie erst installiert werden.
Die verschiedenen Versionen von PowerShell Core stehen unter der Adresse https://github.com/PowerShell/PowerShell zum Download bereit.
Um PowerShell Core installieren zu können, müssen Sie moderne Betriebssysteme ab Windows 7 (Service Pack 1), Windows Server 2008 oder höher verwenden. Führen Sie die folgenden Schritte aus:
Laden Sie PowerShell Core für Ihren Windows-Client oder Windows-Server von der angegebenen GitHub-Seite herunter.
Es handelt sich um eine Microsoft-Installer-Datei (MSI), die es für 32-Bit- und 64-Bit-Betriebssysteme gibt. Die MSI-Datei hat folgenden Dateinamen: PowerShell-version-win-os-arch.msi (also zum Beispiel PowerShell-6.1.0-win-x64.msi).
Nach erfolgtem Download führen Sie die MSI-Datei mit einem Doppelklick aus und befolgen die Anweisungen.
Bei den optionalen Angaben empfiehlt es sich, PowerShell-Remoting(Enable PowerShell remoting) zu aktivieren (siehe Abbildung 2.5), um auf diesem Rechner PowerShell-Befehle von Remoterechnern ausführen zu können.
Abbildung 2.5: Konfiguration der Optionen bei der Installation
Bei der Installation wird im Windows-Startmenü eine Gruppe »PowerShell« mit dem Eintrag »PowerShell 6 (x64)« (für das Beispiel PowerShell Core 6.1) erstellt.
PowerShell Core wird standardmäßig im Verzeichnis C:\Programme\PowerShell\Hauptversion (also im Beispiel C:\Programme\PowerShell\6) installiert.
Die Windows PowerShell und PowerShell Core können auf Windows-Computern parallel betrieben werden. Sie können ruhigen Gewissens PowerShell Core zusätzlich installieren und beides sogar gleichzeitig ausführen.
Starten Sie PowerShell Core über die automatisch erstellte Verknüpfung im Windows-Startmenü oder im Windows-Explorer durch Doppelklick auf die Datei
C:\Programme\6\pwsh
.exe
.
Nach dem Start geben Sie
$PSVersionTable
ein und drücken die Taste (siehe
Abbildung 2.6
).
Abbildung 2.6: PowerShell Core unter Windows mit Angaben zur Version
Die Eigenschaft PSEdition besitzt hier den Wert (PowerShell) Core in der Version 6.1 (Wert der Eigenschaft PSVersion). Darüber hinaus zeigt der Wert für die Eigenschaft OS, dass es sich wegen der Versionsnummer beim verwendeten Betriebssystem um Windows 7 (SP 1) handelt.
Sollten Sie später einmal PowerShell Core deinstallieren wollen, nutzen Sie die Windows-übliche Deinstallationsroutine, die Ihnen in PROGRAMME UND FEATURES in der Systemsteuerung zur Verfügung steht.
Unter Windows ist die Konfiguration von PowerShell Core identisch mit der weiter oben beschriebenen Konfiguration der Windows PowerShell.
PowerShell Core unterstützt eine Reihe verschiedener Linux-Distributionen wie Ubuntu, Debian, CentOS, Red Hat, SUSE und Fedora.
Bei der Erstellung des Buches habe ich mit virtuellen Maschinen mit dem Betriebssystem Ubuntu 18.04 gearbeitet. Anleitungen und Erfahrungen beziehen sich vornehmlich auf diese Version.
Microsoft stellt unter der Adresse https://docs.microsoft.com/de-de/powershell/scripting/setup/installing-powershell-core-on-linux?view=powershell-6 Anleitungen zur Verfügung, wie PowerShell Core auch unter anderen unterstützten Linux-Distributionen installiert wird.
PowerShell Core für Linux wird auf GitHub in sogenannten Paketrepositories veröffentlicht, die die Installation und den Umgang mit Updates erleichtern. Microsoft bezeichnet dies als bevorzugte Methode, die jeweils neueste Version zu installieren. Auf einen direkten Download des Pakets einer speziellen Version von der sogenannten Releases-Seite über GitHub, auf der PowerShell Core veröffentlicht wird (https://github.com/PowerShell/PowerShell/releases), können Sie damit verzichten.
Um PowerShell Core unter Ubuntu 18.04 zu installieren, führen Sie folgende Schritte aus:
Öffnen Sie ein Terminalfenster, beispielsweise über die Tastenkombination + + .
Geben Sie den folgenden Befehl ein:
curlhttps://packages.microsoft.com/keys/microsoft.asc| sudo apt-key add –
Auf diese Weise importieren Sie die öffentlichen PGP-Schlüssel, die Sie zum Zugriff auf die Microsoft-Repositories benötigen.
Zur Registrierung des Microsoft Ubuntu-Repositories geben Sie zusätzlich ein:
sudo curl -o /etc/apt/sources.list.d/microsoft.listhttps://packages.microsoft.com/config/ubuntu/18.04/prod.list
Aktualisieren Sie die Produktliste durch Eingabe von
sudo apt-get update
.
Installieren Sie PowerShell Core mit dem Befehl
sudo apt-get install -y powershell
.
Die Arbeit ist getan. Von nun an können Sie PowerShell Core im Terminalfenster mithilfe des Befehls
pwsh
starten.
Nach dem Start geben Sie
$PSVersionTable
ein und drücken (siehe
Abbildung 2.7
).
Abbildung 2.7: PowerShell Core unter Linux (Ubuntu 18.04) mit Angaben zur Version
Wie zu erwarten ist, zeigen PSVersion und PSEdition PowerShell Core Version 6.1. Als Platform wird Unix angegeben, bei OS Ubuntu Linux. Es gibt sie also wirklich, eine PowerShell außerhalb von Windows-Systemen.
Eine spätere Deinstallation von PowerShell Core lässt sich mithilfe des Befehls sudo apt-get remove powershell im Terminal realisieren.
Da PowerShell Core in einem Fenster der Terminal-Anwendung von Linux läuft, nehmen Sie für individuelle Anpassung von Farbe, Schriftart und -größe Änderungen an den Einstellungen der Terminal-Anwendung selbst vor.
Bei geöffnetem Terminal wählen Sie im Menü BEARBEITEN den Eintrag EINSTELLUNGEN.
Im geöffneten Einstellungsfenster können Sie nun entweder ein neues Profil anlegen und konfigurieren oder das vorhandene Profil UNBENANNT anpassen.
Einzelne Register erlauben die Anpassungen unter anderem der Größe des Terminalfensters, Schriftart und -größe sowie Text- und Hintergrundfarbe.
Klicken Sie sich durch die möglichen Einstellungen.
Es gibt viel mehr zu entdecken.
PowerShell Core steht für macOS ab der Version 10.12 zur Verfügung. Microsoft empfiehlt für eine einfache Installation die Verwendung des Paket-Managers Homebrew.
Zur Installation gehen Sie wie folgt vor:
Um zu überprüfen, ob Homebrew auf dem Rechner verfügbar ist, geben Sie in einem Terminalfenster
brew
ein.
Wurde der Befehl brew nicht gefunden, müssen Sie Homebrew mit folgendem Befehl installieren: /usr/bin/ruby -e "$(curl -fsSLhttps://raw.githubusercontent.com/Homebrew/install/master/install)"
Wurde der Befehl brew gefunden, empfiehlt sich ein Update einer eventuell veralteten Version von Homebrew. Hierzu geben Sie zwei Befehle ein:
brew update-reset
brew update
Nach der Installation beziehungsweise Aktualisierung von Homebrew können Sie mit der Installation von PowerShell Core beginnen. Hierzu geben Sie im Terminalfenster ein:
brew cask install powershell
Auch bei macOS wird anschließend PowerShell Core über den Befehl
pwsh
im Terminalfenster gestartet.
Um den Test unter verschiedenen Betriebssystemen zu vollenden, geben Sie nach dem Start
$PSVersionTable
ein und drücken (siehe
Abbildung 2.8
).
Abbildung 2.8: PowerShell Core unter macOS 10.12 mit Angaben zur Version
PowerShell Core zeigt Version 6.1 unter dem Betriebssystem macOS Sierra 10.12 (Darwin 16.7.0) an.
Wurde PowerShell Core unter macOS mit Homebrew installiert, lässt sich eine Deinstallation mit einem Befehl im Terminal durchführen: brew cask uninstall powershell.
PowerShell Core wird auch unter macOS in einem Fenster der Terminal-Anwendung ausgeführt. Individuelle Anpassungen von Farbe des Terminals, Schriftart und -größe nehmen Sie direkt für die Terminal-Anwendung vor.
Öffnen Sie ein Terminalfenster, beispielsweise durch Klicken auf das entsprechende Icon in der macOS-Symbolleiste. Achten Sie darauf, dass das Terminal die aktive Anwendung ist. Sind Sie nicht sicher, klicken Sie in das Terminalfenster.
In der macOS-Menüleiste klicken Sie den fett gedruckten Eintrag
TERMINAL
an und wählen den Eintrag
EINSTELLUNGEN
.
Es öffnet sich ein Fenster, in dem Sie eine Vielzahl an Einstellungen vornehmen können. Besonders interessant ist das Register
PROFILE
, in dem Sie viele wichtige Einstellungen (Fensterfarben und -größe sowie Schriftart und -größe) verändern können.
Wählen Sie das Profil
Ocean
, und klicken Sie unter den Profilen auf die Schaltfläche
STANDARD
(siehe
Abbildung 2.9
).
Abbildung 2.9: Änderung des Terminal-Farbprofils mit dunklem Hintergrund
Wählen Sie für eine bessere Lesbarkeit ein Profil mit dunklem Hintergrund, wie Ocean oder Pro. Im Standardprofil Basic verwendet das Terminal eine dunkle Schrift auf weißem Hintergrund, sodass beispielsweise die automatisch gelb dargestellten PowerShell-Befehle kaum lesbar sind.
Weitere Einstellungen nehmen Sie nach Ihren eigenen Vorlieben vor.
Die Windows PowerShell wird mit aktuellen Windows-Betriebssystemen (sowohl Server als auch Client) ausgeliefert. Die Konsolenanwendung (powershell.exe) ist im Startmenü integriert und kann direkt gestartet werden.
PowerShell Core kann als Konsolenanwendung sowohl unter Windows (pwsh.exe) als auch unter Linux oder macOS (jeweils pwsh) betrieben werden. In allen Fällen stellt Microsoft aktuelle Versionen online auf GitHub zum Download zur Verfügung.
PowerShell Core unter Windows wird als MSI-Datei heruntergeladen und dann per Doppelklick installiert.
PowerShell Core unter Linux und macOS werden am einfachsten über integrierte Paketverwaltungen geladen und installiert. Dies macht manuelle Installationen überflüssig und stellt sicher, stets die aktuellste Version zu laden.
Da PowerShell Core in den Terminalanwendungen ausgeführt wird, muss bei der Konfiguration genau genommen die Terminalanwendung nach eigenen Wünschen konfiguriert werden und nicht PowerShell Core selbst.
Kapitel 3
IN DIESEM KAPITEL
Windows PowerShell ISE finden und starten
Visual Studio Code herunterladen, installieren und starten
Visual Studio Code: Sprachunterstützung für PowerShell nachinstallieren
Visual Studio Code: Deutsche Benutzeroberfläche bei Bedarf verwenden
Die PowerShell-Konsole ist zwar funktional, begeistert auf den ersten Blick durch ihr spartanisches Erscheinungsbild aber wohl nur Puristen. Die PowerShell kann deutlich mehr und bietet bei Bedarf eine grafische Entwicklungsumgebung.
Neben der vereinfachten Bedienung stehen hier Funktion und Komfort im Vordergrund.
In diesem Kapitel erfahren Sie, welchen grafischen Editor die Windows PowerShell zur Verfügung stellt, wie Sie ihn ausführen und sich in der Windows PowerShell ISE orientieren.
