Windows Scripting lernen - Von Windows Script Host und Visual Basic Script bis zur Windows PowerShell

Holger Schwichtenberg

Windows Scripting lernen

Von Windows Script Host und Visual Basic Script bis zur Windows PowerShell

2016

554 Seiten

Format: PDF, ePUB, Online Lesen

E-Book: €  34,99

E-Book kaufen

E-Book kaufen

ISBN: 9783446449442

 

Inhalt

6

Vorwort

18

Website für Leser

23

Über den Autor Dr. Holger Schwichtenberg

24

Hinweise für den Leser

26

Schreibweisen in diesem Buch

26

Hinweise zu den Listings

27

1 Einführung in den Windows Script Host (WSH)

28

1.1 Der Windows Script Host

28

1.2 Scripting versus Programmierung

29

1.3 Voraussetzungen

29

1.4 Die Sprache Visual Basic Script

31

1.5 Das erste Skript

32

1.6 Scripting im Kommandozeilenfenster

35

1.7 Das zweite Skript: Versionsnummern ermitteln

38

1.8 Ein Wort zur Sicherheit

39

1.9 Wie geht es weiter?

40

1.10 Fragen und Aufgaben

41

2 Scripting-Werkzeuge

42

2.1 Nur zur Not: Notepad

43

2.2 Einer für alles: PrimalScript

45

2.3 Der WSH-Spezialist: SystemScripter

47

2.3.1 Fehlerarten

50

2.3.2 Start des Debuggers

51

2.3.3 Funktionen des Microsoft Script Debuggers

53

2.4 Fragen und Aufgaben

54

3 Scripting und die Benutzerkontensteuerung

56

3.1 Benutzerkontensteuerung

56

3.2 WSH-Skripte arbeiten nicht mit der Benutzerkontensteuerung zusammen

58

3.3 Lösungen des Problems

59

3.4 Start aus dem Admin-Konsolenfenster heraus

60

3.5 Anlegen einer Verknüpfung zu wscript.exe oder cscript.exe

62

3.6 Benutzerkontensteuerung deaktivieren

63

3.7 Änderungen der Benutzerkontensteuerung in Windows 8.x und Windows 10 sowie Windows Server 2012 sowie Windows Server 2016

64

4 Programmieren mit VBScript

66

4.1 Die Visual-Basic-Sprachfamilie

66

4.2 Allgemeines zum Arbeiten mit VBScript

67

4.3 Kommentare

69

4.4 Literale

69

4.5 Konstanten

71

4.5.1 Vordefinierte Konstanten

72

4.5.2 Definieren eigener Konstanten

73

4.5.3 Verwenden von Konstanten

74

4.6 Variablen

74

4.6.1 Verwendung von Variablen

75

4.6.2 Datentypen

77

4.7 Operatoren

78

4.7.1 Arithmetische Operatoren

79

4.7.2 Vergleichsoperatoren

80

4.7.3 Logische Operatoren

81

4.7.4 Bitweise Operationen

82

4.8 Bedingungen

83

4.8.1 If .?.?. Then

84

4.8.2 Select Case

85

4.8.3 Bedingte Ausgaben zur Fehlersuche

86

4.9 Schleifen

88

4.9.1 For .?.?. Next

88

4.9.2 Do .?.?. Loop

89

4.10 Arrays (Variablenmengen)

92

4.10.1 Eindimensionale Arrays

93

4.10.2 Mehrdimensionale Arrays

95

4.11 Eingebaute Funktionen

96

4.11.1 Eingabehilfen

96

4.11.2 Ein- und Ausgabefunktionen

96

4.11.3 Konvertierungsfunktionen

101

4.11.4 Abs() und Int()

103

4.11.5 Rnd()

104

4.11.6 InStr()

105

4.11.7 Left(), Right() und Mid()

105

4.11.8 Replace() und Trim()

106

4.11.9 UCase() und LCase()

107

4.11.10 Split() und Join()

108

4.11.11 Date(), Time() und Now()

109

4.11.12 DateAdd() und DateDiff()

109

4.11.13 Hour(), Minute(), Second(), Day(), Month(), Year() und WeekDay()

111

4.11.14 Format(), FormatNumber() und FormatDateTime()

112

4.11.15 IsDate(), IsNumeric(), IsArray()

114

4.12 Unterroutinen

115

4.12.1 Unterroutine ohne Rückgabewert (Prozedur)

116

4.12.2 Unterroutine mit Rückgabewert (Funktion)

117

4.13 Benutzerdefinierte Fehlerbehandlung

118

4.14 Fragen und Aufgaben

120

5 Programmieren mit Objekten

122

5.1 Was ist ein Objekt?

122

5.2 Was ist eine Klasse?

123

5.3 Objekte haben Beziehungen

126

5.4 Was ist eine Komponente?

127

5.5 Wie arbeitet man mit Objekten?

128

5.5.1 Objektvariablen

129

5.5.2 Instanziierung eines Objekts aus einer Klasse

129

5.5.3 Auslesen des Werts eines Attributs

131

5.5.4 Setzen des Werts eines Attributs

131

5.5.5 Aufruf einer Methode

131

5.5.6 Reagieren auf ein Ereignis

132

5.5.7 Löschen eines Objekts

132

5.5.8 Duplizieren eines Objekts

133

5.5.9 Vergleich zweier Objekte

134

5.5.10 Ermitteln der Klasse, zu der ein Objekt gehört

134

5.6 Eingabehilfen für Objekte

134

5.7 Wie erfahre ich, welche Objekte es überhaupt gibt?

135

5.8 Was passiert, wenn ein Objekt nicht da ist?

137

5.9 Was ist eine Objektmenge?

137

5.9.1 For Each ... Next

138

5.9.2 Zugriff auf einzelne Objekte in einer Objektmenge

139

5.9.3 Verändern einer Objektmenge

140

5.10 Fragen und Aufgaben

141

6 Komponenten für das Scripting

142

6.1 WSH Runtime (WSHRun)

142

6.1.1 Installation

143

6.1.2 Klassen

143

6.1.3 Beispiele

145

6.2 Scripting Runtime (SCRRun)

145

6.2.1 Installation

146

6.2.2 Klassen

146

6.2.3 Objektauswahl

148

6.2.4 Beispiele

148

6.3 ActiveX Data Objects (ADO)

148

6.3.1 Installation

149

6.3.2 Klassen

149

6.3.3 Objektauswahl

150

6.3.4 Beispiele

152

6.4 Active Directory Service Interface (ADSI)

152

6.4.1 Installation

153

6.4.2 Klassen

154

6.4.3 Hilfsmittel

159

6.5 Group Policy Management-Komponente (GPMC Objects)

160

6.5.1 Installation

162

6.5.2 Klassen

162

6.5.3 Hilfsmittel

165

6.5.4 Beispiele

169

6.6 Windows Management Instrumentation (WMI)

169

6.6.1 Installation

170

6.6.2 WMI-Klassen

171

6.6.3 Scripting-Hilfsklassen für WMI

172

6.6.4 Objektauswahl

174

6.6.5 Hilfsmittel

177

6.7 Microsoft XML (MSXML)

178

6.7.1 XML-Grundlagen

178

6.7.2 Installation

181

6.7.3 Klassen

181

6.8 Fragen und Aufgaben

182

7 Datenübergabe und Datenausgabe

184

7.1 Kommandozeilenparameter

185

7.1.1 Komplexere Parameter

186

7.1.2 Kommandozeilenparameter des WSH

188

7.2 Zugriff auf Datendateien

189

7.2.1 Zugriff auf CSV-Dateien

190

7.2.2 Zugriff auf INI-Dateien

193

7.2.3 Zugriff auf Access-Datenbanken

197

7.2.4 Zugriff auf XML-Dateien

202

7.3 Fragen und Aufgaben

207

8 Scripting des Dateisystems

210

8.1 Dateien

210

8.1.1 Auflisten von Dateien

210

8.1.2 Dateieigenschaften bestimmen

211

8.1.3 Dateieigenschaften ändern

213

8.1.4 Anlegen einer Textdatei

214

8.1.5 Lesen einer Textdatei

215

8.1.6 Schreiben von Dateien

218

8.1.7 Umbenennen einer Datei

219

8.1.8 Kopieren einer Datei

219

8.1.9 Verschieben einer Datei

220

8.1.10 Dateien suchen

221

8.1.11 Suchen in Dateiinhalten

223

8.1.12 Dateien löschen

224

8.2 Verzeichnisse

225

8.2.1 Auflisten eines einzelnen Verzeichnisses

225

8.2.2 Auflisten eines Verzeichnisbaums

226

8.2.3 Anlegen eines Verzeichnisses

227

8.2.4 Verzeichnisattribute bestimmen

227

8.2.5 Umbenennen eines Verzeichnisses

229

8.2.6 Löschen von Verzeichnissen

230

8.2.7 Kopieren von Verzeichnissen

231

8.2.8 Verschieben von Verzeichnissen

231

8.2.9 Verzeichnis suchen

232

8.2.10 Eine Verzeichnisstruktur gemäß einer XML-Datei anlegen

234

8.2.11 Eine Verzeichnisstruktur in einer XML-Datei dokumentieren

237

8.3 Papierkorb leeren

240

8.4 Rechte auf Dateien und Verzeichnisse vergeben

242

8.5 Laufwerke

242

8.5.1 Auflisten von Laufwerken

242

8.5.2 Laufwerkstyp bestimmen

244

8.5.3 Dateisystemtyp ermitteln

245

8.5.4 Speicherplatzbelegung anzeigen

246

8.5.5 Mit einem Netzlaufwerk verbinden

249

8.5.6 Netzwerkverbindung trennen

250

8.5.7 Festplattenprüfung (CheckDisk)

250

8.6 Freigaben

251

8.6.1 Anlegen von Freigaben

252

8.6.2 Löschen von Freigaben

253

8.6.3 Rechte auf Freigaben

253

8.7 Fragen und Aufgaben

253

9 Scripting der Benutzerverwaltung

256

9.1 Benutzerverwaltung für lokale Benutzerkonten

257

9.1.1 Anlegen eines Benutzerkontos

257

9.1.2 Umbenennen eines Benutzers

260

9.1.3 Kennwort eines Benutzers ändern

261

9.1.4 Anlegen einer Benutzergruppe

262

9.1.5 Hinzufügen eines Benutzers zu einer Gruppe

264

9.1.6 Entfernen eines Benutzers aus einer Gruppe

265

9.1.7 Deaktivieren eines Benutzerkontos

265

9.1.8 Löschen einer Gruppe

266

9.1.9 Löschen eines Benutzers

267

9.2 Active-Directory-Benutzerverwaltung unter Windows Server

268

9.2.1 Anlegen einer Organisationseinheit

268

9.2.2 Anlegen eines Organisationseinheitenbaums im Active Directory

270

9.2.3 Anlegen eines Benutzerkontos

272

9.2.4 Anlegen von Benutzern aus einer Access-Datenbank

273

9.2.5 Anlegen einer Benutzergruppe

275

9.2.6 Hinzufügen eines Benutzers einer Gruppe

276

9.2.7 Ändern des Kennworts

278

9.2.8 Umbenennen eines Benutzers

278

9.2.9 Ändern der Benutzerdaten

279

9.2.10 Deaktivieren eines Benutzerkontos

280

9.2.11 Entfernen eines Benutzers aus einer Gruppe

281

9.2.12 Löschen eines Benutzerkontos

283

9.2.13 Löschen einer Organisationseinheit

284

9.3 Fragen und Aufgaben

285

10 Scripting der Computerverwaltung

286

10.1 Computer auflisten

286

10.2 Leistung eines Computers ermitteln

288

10.3 Computerkonto erstellen

290

10.4 Computerkonto löschen

291

10.5 Computer zu Domäne hinzufügen

292

10.6 Computer umbenennen

293

10.7 Einen Computer herunterfahren/neu starten

295

10.8 Fragen und Aufgaben

296

11 Scripting der Ereignisprotokolle

298

11.1 Protokolleinträge lesen

299

11.2 Protokolleinträge schreiben

300

11.3 Protokolleinträge auswerten

303

11.4 Datensicherung des Ereignisprotokolls

305

11.5 Ereignisprotokoll anlegen

306

11.6 Ereignisprotokoll löschen

307

11.7 Ereignisprotokoll leeren

308

11.8 Überwachung von Einträgen

309

11.9 Fragen und Aufgaben

310

12 Scripting der Systemdienste

312

12.1 Auflisten aller Dienste

312

12.2 Auflisten aller laufenden Dienste

314

12.3 Status ermitteln

314

12.4 Starten

315

12.5 Beenden eines Dienstes

316

12.6 Neustart eines Dienstes auf mehreren Computern gemäß einer Textdatei

317

12.7 Anhalten eines Dienstes

319

12.8 Fortsetzen eines Dienstes

320

12.9 Daten ändern

321

12.10 Dienste überwachen

323

12.11 Fragen und Aufgaben

324

13 Scripting des Desktops

326

13.1 Desktop verändern

326

13.2 Startmenü verändern

327

13.3 Fragen und Aufgaben

329

14 Scripting der Registrierungsdatenbank

330

14.1 Eintrag lesen

332

14.1.1 Zugriff mit WSHRun

332

14.1.2 Zugriff mit WMI

333

14.2 Wert schreiben

335

14.2.1 Alternative: WMI

336

14.3 Eintrag anlegen

338

14.4 Eintrag löschen

338

14.4.1 Alternative 1: Löschen mit der WSHRun-Komponente

338

14.4.2 Alternative 2: Löschen mit der WMI-Komponente

339

14.5 Unterschlüssel auflisten

339

14.6 Schlüssel anlegen

340

14.6.1 Alternative: WMI

341

14.7 Schlüssel löschen

342

14.7.1 Alternative: Löschen mit der WSHRun-Komponente

343

14.8 Berechtigungen vergeben

343

14.9 Fragen und Aufgaben

344

15 Scripting der Netzwerkkonfiguration

346

15.1 Festlegen einer statischen IP-Adresse

347

15.1.1 Besonderheiten

349

15.2 Standard-Gateway festlegen

349

15.3 DNS-Server festlegen

351

15.4 WINS-Server festlegen

352

15.5 Auf DHCP umstellen

353

15.6 Fragen und Aufgaben

354

16 Scripting der Softwareverwaltung

356

16.1 Installierte Software auflisten (Softwareinventarisierung)

356

16.2 Software (entfernt) installieren

361

16.3 Software auf mehreren Computern installieren (gemäß einer XML-Datei)

362

16.4 Software deinstallieren

364

16.5 Fragen und Aufgaben

364

17 Scripting der Prozessverwaltung

366

17.1 Prozesse auflisten

366

17.2 Prozesse (entfernt) starten

368

17.2.1 Prozesse starten mit WScript.Shell

369

17.2.2 Prozesse starten mit Win32_Process

370

17.3 Prozesse (entfernt) beenden

373

17.3.1 Prozesse beenden mit WScript.Shell

373

17.3.2 Prozesse beenden mit Win32_Process

375

17.4 Fragen und Aufgaben

376

18 Scripting der Gruppenrichtlinien

378

18.1 Informationen über ein einzelnes Gruppenrichtlinienobjekt

378

18.1.1 Suche nach einem GPO

378

18.1.2 Informationen über ein GPO

379

18.1.3 Verknüpfungen auflisten

379

18.1.4 Das komplette Skript

380

18.2 Alle Gruppenrichtlinien und ihre Verknüpfungen auflisten

382

18.3 Eine Gruppenrichtlinie für einen Container auflisten

385

18.4 Eine Gruppenrichtlinie mit einem AD?Container verknüpfen

387

18.5 Eine Gruppenrichtlinienverknüpfung löschen

389

18.6 Eine Gruppenrichtlinie löschen

391

18.7 Sicherungskopien von Gruppenrichtlinien anlegen

393

18.8 Sicherungskopien einer Gruppenrichtlinie auflisten

395

18.9 Wiederherstellung von Gruppenrichtlinien

396

18.10 Weitere Möglichkeiten

398

18.11 Fragen und Aufgaben

398

19 Scripting-Sicherheit

400

19.1 Bedrohungen durch WSH-Skripte

400

19.2 Schutz vor bösen Skripten

401

19.2.1 Globale WSH-Deaktivierung

401

19.2.2 Sperrung auf Skriptdateiebene

402

19.2.3 WSH-Skripte signieren

402

19.2.4 Skriptkontrolle durch Richtlinien für Softwareeinschränkungen

413

19.3 Schutz vor dem Einblick in den Quellcode

415

19.4 Ein Skript unter einem anderen Benutzerkontext starten

417

19.4.1 Benutzerwechsel für ein komplettes Skript

417

19.4.2 Benutzerwechsel im Skriptablauf

419

19.5 Fragen und Aufgaben

425

20 Windows PowerShell (WPS) 5.0

426

20.1 Vergleich zwischen WSH und PowerShell

426

20.2 Voraussetzungen und Installation

428

20.3 PowerShell-Werkzeuge

428

20.4 PowerShell-Commandlets

431

20.5 PowerShell-Pipelines

432

20.6 Ausgaben

435

20.7 Navigation in Containern

437

20.8 Hilfe zur PowerShell

439

20.9 PowerShell-Skripte

441

20.9.1 PowerShell-Skript-Editoren

442

20.9.2 Ein Beispiel

443

20.9.3 Sprachkonstrukte

444

20.9.4 Skripte ausführen

446

20.10 Fernausführung von Befehlen (Remoting)

449

20.11 Zusatzkomponenten und Klassen nutzen

451

20.12 Zusätzliche PowerShell-Module mit weiteren Commandlets

451

20.12.1 Module manuell installieren

451

20.12.2 Module automatisch herunterladen und installieren (ab PowerShell 3.0)

452

20.12.3 Module auflisten

458

20.12.4 Module laden

459

20.13 COM-Komponenten, die man auch im WSH mit VBScript nutzen kann

460

20.14 .NET-Klassen

461

20.15 WMI-Klassen

462

20.15.1 Abruf von WMI-Objektmengen

463

20.15.2 Fernzugriffe

464

20.15.3 Filtern und abfragen

464

20.15.4 Filtern mit Get-WmiObject

465

20.15.5 Zugriff auf einzelne WMI-Objekte

465

20.15.6 WQL-Abfragen

467

20.15.7 Ermittlung der Mitglieder des WMI-Objekts

468

20.15.8 Umgang mit WMI-Datumsangaben

470

20.15.9 Zugriff auf Mitglieder von WMI-Klassen

470

20.15.10 Statische Klassenmitglieder

472

20.15.11 Werte setzen in WMI-Objekten

472

20.15.12 Methodenaufrufe mit Invoke-WmiMethod

473

20.15.13 Liste aller WMI-Klassen

473

20.15.14 Neue WMI-Instanzen erzeugen

474

20.15.15 Weitere Möglichkeiten

475

20.16 PowerShell-Commandlets in Aktion

475

20.17 PowerShell-Skripte aus der Praxis

480

20.17.1 Leere Ordner löschen

480

20.17.2 Fotos nach Aufnahmedatum sortieren

481

20.17.3 Papierkorb leeren

483

20.17.4 Freigaben anlegen

483

20.17.5 Netzwerkkonfiguration

493

20.17.6 Massenanlegen von Active-Directory-Benutzerkonten

495

20.17.7 Massenanlegen von IIS-Websites

499

20.17.8 Massenanlegen von Registry-Schlüsseln

500

20.17.9 Softwareinstallation

502

20.17.10 Virtuelles System in Hyper-V anlegen

503

21 Wie geht es weiter?

506

Anhang A: Eingebaute Funktionen in VBScript

508

A.1 Numerische Funktionen

508

A.2 Formatierungsfunktionen

509

A.3 Zeichenkettenfunktionen

509

A.4 Datums-/Uhrzeitfunktionen

511

A.5 Array-Funktionen

512

A.6 Funktionen zur Arbeit mit COM-Klassen

512

A.7 Systemfunktionen und Ein-/Ausgabe

513

A.8 Typprüfung und -umwandlung

513

A.9 Sonstige Funktionen

514

Anhang B: Lösungen zu den Übungsaufgaben in diesem Buch

516

B.1 Lösungen zu Kapitel 1

516

B.2 Lösungen zu Kapitel 2

517

B.3 Lösungen zu Kapitel 3

518

B.4 Lösungen zu Kapitel 4

519

B.5 Lösungen zu Kapitel 5

520

B.6 Lösungen zu Kapitel 6

520

B.7 Lösungen zu Kapitel 7

521

B.8 Lösungen zu Kapitel 8

522

B.9 Lösungen zu Kapitel 9

523

B.10 Lösungen zu Kapitel 10

525

B.11 Lösungen zu Kapitel 11

525

B.12 Lösungen zu Kapitel 12

526

B.13 Lösungen zu Kapitel 13

526

B.14 Lösungen zu Kapitel 14

527

B.15 Lösungen zu Kapitel 15

527

B.16 Lösungen zu Kapitel 16

529

B.17 Lösungen zu Kapitel 17

529

B.18 Lösungen zu Kapitel 18

531

B.19 Lösungen zu Kapitel 20

531

Anhang C: Abkürzungsverzeichnis

534

Anhang D: Quellen und weiterführende Literatur

542

Stichwortverzeichnis

546

 

© 2009-2024 ciando GmbH