Windows PowerShell 4.0 - Das Praxisbuch

Holger Schwichtenberg

Windows PowerShell 4.0

Das Praxisbuch

2014

926 Seiten

Format: PDF, Online Lesen

E-Book: €  39,99

E-Book kaufen

E-Book kaufen

ISBN: 9783446441200

 

Inhalt

7

Vorwort zur vierten Auflage 2014

21

Wer bin ich?

21

Wer sind Sie?

21

Was ist neu in diesem Buch?

22

Wem ist zu danken?

22

Woher bekommen Sie die Beispiele aus diesem Buch?

23

Wo kann ich mich schulen oder beraten lassen?

23

Zum Schluss des Vorworts .....

23

Über den Autor Dr. Holger Schwichtenberg

25

Über den Co-Autor Peter Monadjemi

26

1 Erste Schritte mit der Windows PowerShell

29

1.1 Was ist die Windows PowerShell?

29

1.2 Geschichte der Windows PowerShell

30

1.3 Motivation zur Windows PowerShell

30

1.4 Betriebssysteme mit vorinstallierter ­PowerShell

33

1.5 PowerShell herunterladen und installieren auf anderen Betriebssystemen

35

1.6 Die Windows PowerShell testen

38

1.7 Woher kommen die Commandlets?

43

1.8 PowerShell Community Extensions (PSCX) herunterladen und installieren

44

1.9 Den PowerShell-Editor „ISE“ verwenden

45

2 Architektur der Windows PowerShell

49

3 Einzelbefehle der PowerShell

53

3.1 Commandlets

53

3.2 Aliase

61

3.3 Ausdrücke

68

3.4 Externe Befehle

69

3.5 Dateinamen

70

4 Hilfefunktionen

73

4.1 Auflisten der verfügbaren Befehle

73

4.2 Erläuterungen zu den Befehlen

76

4.3 Hilfe zu Parametern

77

4.4 Hilfe mit Show-Command

77

4.5 Hilfefenster

78

4.6 Aktualisieren der Hilfedateien

79

4.7 Online-Hilfe

81

4.8 Dokumentation der .NET-Klassen

81

5 Objektorientiertes Pipelining

85

5.1 Pipeline-Operator

85

5.2 .NET-Objekte in der Pipeline

86

5.3 Pipeline Processor

88

5.4 Pipelining von Parametern

89

5.5 Pipelining von klassischen Befehlen

91

5.6 Anzahl der Objekte in der Pipeline

92

5.7 Zugriff auf einzelne Objekte aus einer Menge

92

5.8 Zugriff auf einzelne Werte in einem Objekt

94

5.9 Methoden ausführen

95

5.10 Analyse des Pipeline-Inhalts

97

5.11 Filtern

108

5.12 Zusammenfassung von Pipeline-Inhalten

111

5.13 „Kastrierung“ von Objekten in der Pipeline

111

5.14 Sortieren

112

5.15 Duplikate entfernen

113

5.16 Gruppierung

114

5.17 Berechnungen

115

5.18 Zwischenschritte in der Pipeline mit Variablen

116

5.19 Verzweigungen in der Pipeline

117

5.20 Vergleiche zwischen Objekten

119

5.21 Praxisbeispiele

119

6 PowerShell-Skripte

121

6.1 Skriptdateien

121

6.2 Start eines Skripts

123

6.3 Aliase für Skripte verwenden

124

6.4 Parameter für Skripte

125

6.5 Skripte dauerhaft einbinden (Dot Sourcing)

126

6.6 Sicherheitsfunktionen für PowerShell-Skripte

127

6.7 Skripte anhalten

130

7 PowerShell-Skriptsprache

131

7.1 Hilfe zur PowerShell-Skriptsprache

131

7.2 Befehlstrennung

132

7.3 Kommentare

132

7.4 Variablen

133

7.5 Variablenbedingungen

139

7.6 Zahlen

140

7.7 Zeichenketten

142

7.8 Reguläre Ausdrücke

147

7.9 Datum und Uhrzeit

154

7.10 Arrays und assoziative Arrays (Hash-Tabelle)

155

7.11 Operatoren

158

7.12 Überblick über die Kontrollkonstrukte

160

7.13 Schleifen

160

7.14 Bedingungen

165

7.15 Unterroutinen (Prozedur/Funktionen)

167

7.16 Eingebaute Funktionen

173

7.17 Fehlerbehandlung

173

8 Ausgaben

181

8.1 Ausgabe-Commandlets

181

8.2 Out-GridView

183

8.3 Standardausgabe

185

8.4 Einschränkung der Ausgabe

187

8.5 Seitenweise Ausgabe

187

8.6 Ausgabe einzelner Werte

188

8.7 Details zum Ausgabeoperator

190

8.8 Benutzerdefinierte Tabellenformatierung

193

8.9 Ausgabe von Methodenergebnissen und Unterobjekten in Pipelines

194

8.10 Ausgabe von Methodenergebnissen und Unterobjekten in Zeichenketten

194

8.11 Unterdrückung der Ausgabe

195

8.12 Ausgaben an Drucker

196

8.13 Ausgaben in Dateien

196

8.14 Umleitungen (Redirection)

197

9 Benutzereingaben

199

9.1 Read-Host

199

9.2 Grafischer Eingabedialog

200

9.3 Dialogfenster

200

9.4 Authentifizierungsdialog

201

10 Das PowerShell-Navigationsmodell

203

10.1 Einführungsbeispiel: Navigation in der Registrierungsdatenbank

203

10.2 Provider und Laufwerke

204

10.3 Navigationsbefehle

206

10.4 Pfadangaben

207

10.5 Beispiel

209

10.6 Eigene Laufwerke definieren

210

11 PowerShell-Werkzeuge

211

11.1 PowerShell-Standardkonsole

211

11.2 PowerShell Integrated Scripting ­Environment (ISE)

216

11.3 CIM Explorer for PowerShell ISE

222

11.4 PowerShell Web Access (PSWA)

223

11.5 PowerShellPlus

229

11.6 PoshConsole

232

11.7 PowerGUI

233

11.8 PowerShell Analyzer

234

11.9 PrimalScript

235

11.10 PowerShell Help

237

11.11 PowerShell Help Reader

237

11.12 PowerTab

238

11.13 NuGet Package Manager

238

11.14 PowerShell Tools for Visual Studio

239

11.15 PowerShell Remoting

240

11.16 Vergleich der Skripteditoren

240

12 Fernausführung (Remoting)

245

12.1 Fernabfrage ohne WS-Management

246

12.2 Anforderungen

247

12.3 Rechte für Fernaufrufe

248

12.4 Einrichten von WinRM

249

12.5 Überblick über die Fernausführungs-Commandlets

251

12.6 Interaktive Fernverbindungen im Telnet-Stil

251

12.7 Fernausführung von Befehlen

252

12.8 Fernausführung von Skripten

256

12.9 Ausführung auf mehreren Computern

257

12.10 Sitzungen

258

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

262

12.12 Verwaltung des WS-Management-Dienstes

266

13 Verwendung von .NET-Klassen

269

13.1 Microsoft Developer Network (MSDN)

269

13.2 Erzeugen von Instanzen

270

13.3 Parameterbehaftete Konstruktoren

271

13.4 Initialisierung von Objekten

272

13.5 Nutzung von Attributen und Methoden

273

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

275

13.7 Zugriff auf bestehende Objekte

277

13.8 Laden von Assemblies

278

13.9 Objektanalyse

279

13.10 Auflistungen (Enumerationen)

280

13.11 Verknüpfen von Aufzählungswerten

281

14 Verwendung von COM-Klassen

283

14.1 Erzeugen von Instanzen

283

14.2 Nutzung von Attributen und Methoden

284

14.3 Holen bestehender Instanzen

285

15 Zugriff auf die Windows Management Instrumentation (WMI)

287

15.1 Einführung in WMI

287

15.2 WMI in der Windows PowerShell

313

15.3 Abruf von WMI-Objektmengen

314

15.4 Fernzugriffe

315

15.5 Filtern und Abfragen

315

15.6 Liste aller WMI-Klassen

319

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

320

15.8 Beschränkung der Ausgabeliste bei WMI-Objekten

323

15.9 Zugriff auf einzelne Mitglieder von WMI-Klassen

325

15.10 Werte setzen in WMI-Objekten

325

15.11 Umgang mit WMI-Datumsangaben

327

15.12 Methodenaufrufe

328

15.13 Neue WMI-Instanzen erzeugen

329

15.14 Instanzen entfernen

330

15.15 Commandlet Definition XML-Datei (CDXML)

331

16 Dynamische Objekte

333

16.1 Erweitern bestehender Objekte

333

16.2 Komplett dynamische Objekte

335

17 Einbinden von C# und VB.NET

337

18 Win32-API-Aufrufe

339

19 Fehlersuche

343

19.1 Detailinformationen

343

19.2 Einzelschrittmodus

344

19.3 Zeitmessung

345

19.4 Ablaufverfolgung

346

19.5 Kommandozeilenbasiertes Script-Debugging

346

20 Transaktionen

349

20.1 Commandlets für Transaktionen

349

20.2 Start und Ende einer Transaktion

350

20.3 Zurücksetzen der Transaktion

351

20.4 Mehrere Transaktionen

352

21 Hintergrundaufträge („Jobs“)

353

21.1 Voraussetzungen

353

21.2 Architektur

354

21.3 Starten eines Hintergrundauftrags

354

21.4 Hintergrundaufträge abfragen

355

21.5 Warten auf einen Hintergrundauftrag

356

21.6 Abbrechen und Löschen von Aufträgen

356

21.7 Analyse von Fehlermeldungen

357

21.8 Fernausführung von Hintergrundaufträgen

357

22 Geplante Aufgaben und zeitgesteuerte Jobs

359

22.1 Geplante Aufgaben (Scheduled Tasks)

359

22.2 Zeitgesteuerte Jobs

363

23 PowerShell-Workflows

369

23.1 Ein erstes Beispiel

369

23.2 Unterschiede zu einer Function bzw. einem Skript

374

23.3 Einschränkungen bei Workflows

374

23.4 Workflows in der Praxis

376

23.5 Workflows in Visual Studio erstellen

383

24 Ereignissystem

401

24.1 WMI-Ereignisse

401

24.2 WMI-Ereignisabfragen

401

24.3 WMI-Ereignisse ab PowerShell 1.0

403

24.4 Registrieren von WMI-Ereignisquellen seit PowerShell 2.0

404

24.5 Auslesen der Ereignisliste

405

24.6 Reagieren auf Ereignisse

407

24.7 WMI-Ereignisse ab PowerShell-Version 3.0

409

24.8 Registrieren von .NET-Ereignissen

409

24.9 Erzeugen von Ereignissen

410

25 Datenbereiche und Datendateien

413

25.1 Datenbereiche

413

25.2 Datendateien

415

25.3 Mehrsprachigkeit/Lokalisierung

416

26 Desired State Configuration (DSC)

419

26.1 Grundprinzipien

420

26.2 Ressourcen

420

26.3 Eigenschaften eines Ressourcentyps

421

26.4 Aufbau einer DSC-Datei

421

26.5 Ein erstes DSC-Beispiel

422

26.6 Anwendung einer DSC-Datei

422

26.7 Parameter für DSC-Dateien

424

26.8 Verfügbare DSC-Ressourcentypen

425

26.9 Commandlets für die Arbeit mit DSC

427

26.10 DSC-Interna

427

26.11 DSC-Praxisbeispiel 1: IIS installieren

428

26.12 DSC-Praxisbeispiel 2: Software installieren

429

26.13 DSC-Praxisbeispiel 3: Software deinstallieren

431

27 PowerShell-Snap-Ins

433

27.1 Einbinden von Snap-Ins

433

27.2 Liste der Commandlets

437

27.3 Doppeldeutige Namen

438

28 PowerShell-Module

439

28.1 Überblick über die Commandlets

439

28.2 Modularchitektur

440

28.3 Module installieren

441

28.4 Auflisten der verfügbaren Module

441

28.5 Importieren von Modulen

443

28.6 Entfernen von Modulen

446

29 Ausgewählte PowerShell-Erweiterungen

447

29.1 PowerShell-Module in Windows 7 und Windows Server 2008 R2

447

29.2 PowerShell-Module in Windows 8.x und Windows Server 2012/2012 R2

449

29.3 BITSTransfer

453

29.4 Windows Server Backup

454

29.5 PowerShell Diagnostics

454

29.6 Windows PowerShell Community-Extensions

455

29.7 PowerShellPack

459

29.8 www.IT-Visions.de PowerShell­Extensions

460

29.9 Quest Management Shell for Active Directory

461

29.10 Microsoft Exchange Server

462

29.11 System Center Virtual Machine­Manager

463

29.12 PowerShell Management Library for Hyper-V (pshyperv)

464

29.13 Powershell Outlook Account Manager

465

29.14 PowerShell Configurator (PSConfig)

465

29.15 Weitere Erweiterungen

466

30 Tipps und Tricks zur PowerShell

467

30.1 Befehlsgeschichte

467

30.2 System- und Hostinformationen

468

30.3 Alle Anzeigen löschen

469

30.4 Anpassen der Eingabeaufforderung (Prompt)

469

30.5 Profileinstellungen für die PowerShell-Konsole

470

30.6 PowerShell als Gruppenrichtlinien-Skripte

474

30.7 Einblicke in die Interna der Pipeline-Verarbeitung

477

31 Dateisystem

481

31.1 Laufwerke

482

31.2 Ordnerinhalte

486

31.3 Kurznamen

488

31.4 Dateisystemoperationen

488

31.5 Dateieigenschaften lesen

489

31.6 Datei-Hash

490

31.7 Finden von Duplikaten

490

31.8 Dateieigenschaften verändern

493

31.9 Verknüpfungen im Dateisystem

495

31.10 Komprimierung

498

31.11 Dateisystemfreigaben

500

31.12 Überwachung des Dateisystems

509

32 Festplattenverschlüsselung mit Bitlocker

511

32.1 Übersicht über das BitLocker-Modul

512

32.2 Verschlüsseln eines Laufwerks

513

33 Dokumente

515

33.1 Textdateien

515

33.2 Binärdateien

516

33.3 CSV-Dateien

516

33.4 INI-Dateien

518

33.5 XML-Dateien

519

33.6 HTML-Dateien

527

34 Datenbanken

529

34.1 ADO.NET-Grundlagen

529

34.2 Beispieldatenbank

535

34.3 Datenzugriff mit den Bordmitteln der PowerShell

536

34.4 Datenzugriff mit den PowerShell-Erweiterungen

547

34.5 Datenbankzugriff mit SQLPS

550

34.6 Datenbankzugriff mit SQLPSX

550

35 Microsoft SQL Server-Administration

551

35.1 PowerShell-Integration im SQL Server Management Studio

552

35.2 SQL-Server-Laufwerk „SQLSERVER:“

553

35.3 Die SQLPS-Commandlets

556

35.4 Die SQL Server Management Objects (SMO)

558

35.5 SQLPSX

561

35.6 Microsoft SQL Server-Administration mit der PowerShell in der Praxis

569

36 ODBC-Datenquellen

575

36.1 ODBC-Treiber und -Datenquellen auflisten

576

36.2 Anlegen einer ODBC-Datenquelle

577

36.3 Zugriff auf eine ODBC-Datenquelle

578

37 Registrierungsdatenbank (Registry)

581

37.1 Schlüssel auslesen

581

37.2 Schlüssel anlegen und löschen

582

37.3 Laufwerke definieren

582

37.4 Werte anlegen und löschen

583

37.5 Werte auslesen

584

37.6 Praxisbeispiel

584

38 Computerverwaltung

587

38.1 Computerinformationen

587

38.2 Computername und Domäne

589

38.3 Herunterfahren und Neustarten

590

38.4 Wiederherstellungspunkte verwalten

590

39 Hardwareverwaltung

593

39.1 Hardwarebausteine

593

39.2 Druckerverwaltung (ältere Betriebssysteme)

595

39.3 Druckerverwaltung (Windows 8.x und Windows Server 2012/2012 R2)

596

40 Softwareverwaltung

599

40.1 Softwareinventarisierung

599

40.2 Installation von Anwendungen

602

40.3 Deinstallation von Anwendungen

603

40.4 Praxisbeispiel: Installationstest

603

40.5 Versionsnummer ermitteln

604

40.6 Servermanager

605

40.7 Softwareeinschränkungen mit dem PowerShell-Modul „AppLocker“

616

41 Prozessverwaltung

623

41.1 Prozesse auflisten

623

41.2 Prozesse starten

624

41.3 Prozesse beenden

626

41.4 Warten auf das Beenden einer Anwendung

626

42 Systemdienste

629

42.1 Dienste auflisten

629

42.2 Dienstzustand ändern

631

42.3 Diensteigenschaften ändern

632

43 Netzwerk

633

43.1 Netzwerkkonfiguration (ältere Betriebssysteme)

633

43.2 Netzwerkkonfiguration (ab Windows 8.x und Windows Server 2012 (inkl. R2)

635

43.3 DNS-Client-Konfiguration

637

43.4 DNS-Namensauflösung

641

43.5 Erreichbarkeit prüfen (Ping)

642

43.6 Windows Firewall

644

43.7 E-Mails senden (SMTP)

650

43.8 Abruf von Daten von einem HTTP-Server

652

43.9 Aufrufe von SOAP-Webdiensten

653

44 Ereignisprotokolle

657

44.1 Protokolleinträge auslesen

657

44.2 Ereignisprotokolle erzeugen

659

44.3 Protokolleinträge erzeugen

659

44.4 Protokollgröße festlegen

659

44.5 Protokolleinträge löschen

659

45 Leistungsdaten

661

45.1 Zugriff auf Leistungsindikatoren über WMI

661

45.2 Get-Counter

662

46 Sicherheitseinstellungen

665

46.1 Grundlagen

665

46.2 Zugriffsrechtelisten auslesen

670

46.3 Einzelne Rechteeinträge auslesen

672

46.4 Besitzer auslesen

673

46.5 Benutzer und SID

673

46.6 Hinzufügen eines Rechteeintrags zu einer Zugriffsrechteliste

677

46.7 Entfernen eines Rechteeintrags aus einer Zugriffsrechteliste

679

46.8 Zugriffsrechteliste übertragen

681

46.9 Zugriffsrechteliste über SDDL setzen

681

47 Active Directory

683

47.1 Benutzer- und Gruppenverwaltung mit WMI

684

47.2 Einführung in System.DirectoryServices

685

47.3 Basiseigenschaften

696

47.4 Benutzer- und Gruppenverwaltung im Active Directory

698

47.5 Verwaltung der Organisationseinheiten

706

47.6 Suche im Active Directory

707

47.7 Navigation im Active Directory mit den PowerShell Extensions

714

47.8 Verwendung der Active-Directory-Erwei­terungen von www.IT-Visions.de

715

47.9 PowerShell-Modul „Active Directory“ (ADPowerShell)

717

47.10 PowerShell-Modul „ADDSDeployment“

736

47.11 Informationen über die Active-­Directory-Struktur

739

48 Gruppenrichtlinien

743

48.1 Verwaltung der Gruppenrichtlinien

744

48.2 Verknüpfung der Gruppenrichtlinien

745

48.3 Gruppenrichtlinienberichte

747

48.4 Gruppenrichtlinienvererbung

748

48.5 Weitere Möglichkeiten

749

49 Virtuelle Systeme mit Hyper-V

751

49.1 Das Hyper-V-Modul von Microsoft

752

49.2 Die ersten Schritte mit dem Hyper-V-Modul

754

49.3 Virtuelle Maschinen anlegen

758

49.4 Umgang mit virtuellen Festplatten

764

49.5 Konfiguration virtueller Maschinen

767

49.6 PowerShell Management Library for Hyper-V (für ältere Betriebssysteme)

771

50 Internet Information Server (IIS)

775

50.1 Überblick

775

50.2 Navigationsprovider

777

50.3 Anlegen von Websites

779

50.4 Massenanlegen von Websites

780

50.5 Ändern von Eigenschaften von Websites

782

50.6 Anwendungspool anlegen

783

50.7 Virtuelle Verzeichnisse und IIS-Anwendungen

784

50.8 Website-Zustand ändern

784

50.9 Anwendungspools starten und stoppen

785

50.10 Löschen von Websites

785

51 Microsoft Exchange Server

787

51.1 Daten abrufen

787

51.2 Postfächer verwalten

788

51.3 Öffentliche Ordner verwalten

789

52 Optimierungen und Problemlösungen

791

52.1 PowerShell-Modul „TroubleshootingPack“

791

52.2 PowerShell-Modul „Best Practices“

795

53 Grafische Benutzeroberflächen

797

53.1 Eingabemasken

797

53.2 Universelle Objektdarstellung

799

53.3 Zwischenablage

800

53.4 WPF PowerShell Kit (WPK)

801

54 Entwicklung von Commandlets in der PowerShell-Sprache

813

54.1 Aufbau eines skriptbasierten Commandlets

813

54.2 Parameterfestlegung

816

54.3 Auszeichnung der Parameterdefinitionen

821

54.4 Dokumentation

824

55 Entwicklung eigener Commandlets mit C#

827

55.1 Technische Voraussetzungen

827

55.2 Grundkonzept der .NET-basierten ­Commandlets

829

55.3 Schrittweise Erstellung eines minimalen Commandlets

831

55.4 Erstellung eines Commandlets mit einem Rückgabeobjekt

839

55.5 Erstellung eines Commandlets mit mehreren Rückgabeobjekten

840

55.6 Erstellen eines Commandlets mit Parametern

844

55.7 Verarbeiten von Pipeline-Eingaben

846

55.8 Verkettung von Commandlets

849

55.9 Fehlersuche in Commandlets

853

55.10 Statusinformationen

856

55.11 Unterstützung für Sicherheitsabfragen

861

55.12 Festlegung der Hilfeinformationen

863

55.13 Erstellung von Commandlets für den Zugriff auf eine Geschäftsanwendung

867

55.14 Konventionen für Commandlets

868

55.15 Weitere Möglichkeiten

870

56 Hosting der Windows PowerShell

871

56.1 Voraussetzungen für das Hosting

872

56.2 Hosting mit PSHost

872

56.3 Vereinfachtes Hosting seit PowerShell 2.0

876

57 PowerShell-Module erstellen

879

57.1 Erstellen eines Skriptmoduls

879

57.2 Erstellen eines Moduls mit Binärdateien

881

57.3 Erstellen eines Moduls mit Manifest

881

Anhang

889

A Crashkurs „Objektorientierung“

891

B Crashkurs „.NET Framework“

899

C Literatur

907

D Weitere Informationen im Internet

911

Stichwortverzeichnis

913

 

© 2009-2024 ciando GmbH