PowerShell für Dummies - Andreas Dittfurth - E-Book

PowerShell für Dummies E-Book

Andreas Dittfurth

0,0
21,99 €

-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.

Mehr erfahren.
Beschreibung

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:

Android
iOS
von Legimi
zertifizierten E-Readern

Seitenzahl: 468

Veröffentlichungsjahr: 2019

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.



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

Über den Autor

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.

Inhaltsverzeichnis

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

Tabellenverzeichnis

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

Illustrationsverzeichnis

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

Guide

Cover

Inhaltsverzeichnis

Begin Reading

Pages

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

Einleitung

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.

Über dieses Buch

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.

Konventionen in diesem Buch

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.

Was Sie nicht lesen müssen

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.

Törichte Annahmen über den Leser

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.

Wie dieses Buch aufgebaut ist

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: Installation und erste Berührung mit der PowerShell

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.

Teil II: PowerShell-Basiswissen

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: Skripting mit PowerShell

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

Teil IV zeigt Ihnen anhand ausgewählter Spezialthemen fortgeschrittene Techniken der PowerShell.

Teil V: Der Top-Ten-Teil

Teil V enthält nützliche Listen und gibt Hinweise, was Sie bei der Arbeit mit der PowerShell beachten sollten.

Symbole, die in diesem Buch verwendet werden

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.

Wie es weitergeht

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

Installation und erste Berührung mit der PowerShell

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önnen

Kapitel 1

PowerShell Backstage

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.

Geschichte der PowerShell

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.

Ausgangssituation und Konzept

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.

Die Windows PowerShell wird unentbehrlich

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.

PowerShell Core – plattformübergreifend und Open Source

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

Übersicht über 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.

Projekt »Glaskugel«: Zukünftige Versionen

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 …

PowerShell-Entwicklerteam: Ein Ausblick

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.

Welche PowerShell-Version Sie verwenden sollten

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.

Kurz und knackig

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

Installation und Konsole

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.

Die Windows-PowerShell-Konsole starten und testen

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

Die Windows-PowerShell-Konsole konfigurieren

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.

PowerShell Core installieren

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.

PowerShell Core unter Windows installieren und testen

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.

PowerShell Core unter Windows konfigurieren

Unter Windows ist die Konfiguration von PowerShell Core identisch mit der weiter oben beschriebenen Konfiguration der Windows PowerShell.

PowerShell Core unter Linux installieren und testen

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.

PowerShell Core unter Linux konfigurieren

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 unter macOS installieren und testen

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 unter macOS konfigurieren

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.

Kurz und knackig

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

Etwas mehr Grafik, bitte!

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.