Einstieg ins Windows Scripting - Leseprobe (Galileo

Werbung
Liebe Leserin, lieber Leser,
Sie haben sich für ein Galileo Computing-Buch zum Thema »Windows Script
Host« entschieden und liegen damit voll im Trend: Programmierung ist out, Scripting ist in. Der Windows Script Host ermöglicht die Ausführung von Visual Basic
und JavaScript. Das Buch zeigt Voraussetzungen, Gefahren und Nutzen des WSH
auf und führt in die Programmierung mit VBScript und dem WSH-Objektmodell
ein. Verwendet wird der WSH 5.6, der in Windows XP integriert ist, aber für
andere Windows-Versionen ebenso installiert werden kann.
Eine Besonderheit des Buches ist seine genaue Leserführung. Unsere erfahrene
Autorin Helma Spona beweist in diesem Buch erneut, dass sie auszuwählen versteht zwischen wesentlichen und marginalen Inhalten. Dass sie erkennt, welche
Inhalte den zukünftigen Skriptprogrammierer interessieren und mögliche Fehlerquellen gleich mit ihm zusammen umschifft. Sie lernen, ohne dass es an einer
Stelle mühsam und praxisfern wird.
Doch kein noch so gutes Computerbuch ist ohne Fehler. Deshalb freue ich mich
auf Ihre kritische Mitarbeit. Zögern Sie nicht, mich direkt anzuschreiben, um mir
Ihre Verbesserungsvorschläge mitzuteilen.
Und nun viel Freude beim Lesen!
Judith Stevens-Lemoine
Lektorat Galileo Computing
[email protected]
www.galileocomputing.de
Galileo Press • Gartenstraße 24 • 53229 Bonn
Auf einen Blick
Vorwort ....................................................
11
1 Einführung ................................................
13
2 Sprachgrundlagen von VBScript ...............
37
3 Objektorientierte Programmierung mit
dem Windows Script Host ....................... 115
4 Arbeiten mit dem Dateisystem ................. 153
5 Zugreifen auf die Registry ........................ 201
6 Anwendungen steuern ............................. 211
7 Quellcode wieder verwenden ................... 251
8 Benutzeroberflächen erstellen .................. 277
9 Sicherheit ................................................. 317
Referenz ................................................... 347
Glossar ..................................................... 379
Inhalt
Vorwort
11
1
Einführung
13
1.1
Was kann der WSH? .............................................................................
1.1.1
Die Gefahren des WSH ............................................................
1.1.2
Was ist der WSH? ....................................................................
1.1.3
Die Wahl der Skriptsprache ......................................................
15
16
16
17
1.2
Den WSH 5.6 installieren ......................................................................
1.2.1
Die aktuelle WSH-Version ermitteln .........................................
1.2.2
Den WSH herunterladen ..........................................................
1.2.3
Die Installation durchführen .....................................................
1.2.4
Die WSH-Dokumentation herunterladen ..................................
1.2.5
Die Dokumentation installieren und starten .............................
17
18
18
20
20
21
1.3
Quellcode-Editoren ...............................................................................
22
1.4
Das erste Skript erstellen und starten ...................................................
1.4.1
Scripting Spy starten ................................................................
1.4.2
Kommentarzeilen ergänzen ......................................................
1.4.3
Die Programmierhilfen kennen lernen ......................................
1.4.4
Das Skript speichern und ausführen .........................................
1.4.5
Ein Skript per Kontextmenü oder Doppelklick ausführen ..........
1.4.6
Skripte auf Kommandozeilenebene starten ...............................
24
24
25
26
28
29
30
1.5
Optionen zur Konfiguration einsetzen ..................................................
31
1.6
Skripte mit WSH-Dateien konfigurieren ...............................................
32
1.7
Syntaxbeschreibungen verstehen ..........................................................
34
2
Sprachgrundlagen von VBScript
2.1
Aufbau eines Skriptes ...........................................................................
2.1.1
Kommentare ............................................................................
2.1.2
Prozeduren und Funktionen .....................................................
2.1.3
Codeeinrückungen, Leerzeichen und Zeilenumbrüche ..............
2.1.4
Groß- und Kleinschreibung ......................................................
2.1.5
Empfehlungen ..........................................................................
37
39
40
41
42
43
43
Inhalt
5
2.2
Variablen und Konstanten ....................................................................
2.2.1
Variablen und Konstanten deklarieren und initialisieren ...........
2.2.2
Gültigkeitsbereiche ..................................................................
2.2.3
Namenskonventionen ..............................................................
44
44
47
48
2.3
Operatoren ...........................................................................................
2.3.1
Operatorvorrang ......................................................................
2.3.2
Ausdrücke verwenden .............................................................
2.3.3
Verkettungsoperatoren ............................................................
2.3.4
Mathematische Operatoren .....................................................
2.3.5
Vergleichsoperatoren ...............................................................
2.3.6
Logische Operatoren ...............................................................
2.3.7
Zuweisungsoperatoren .............................................................
49
50
51
51
53
54
55
57
2.4
Ein- und Ausgaben ...............................................................................
2.4.1
Eingaben mit InputBox ............................................................
2.4.2
Ausgaben mit MsgBox .............................................................
57
58
60
2.5
Prozeduren und Funktionen definieren ................................................
2.5.1
Prozeduren erstellen und aufrufen ...........................................
2.5.2
Funktionen definieren ..............................................................
2.5.3
Parameterübergabe an Prozeduren und Funktionen .................
2.5.4
Prozeduren und Funktionen aufrufen .......................................
63
63
65
66
68
2.6
Programmablaufsteuerung ....................................................................
2.6.1
Verzweigungen ........................................................................
2.6.2
Schleifen ..................................................................................
2.6.3
Abweisende Schleifen ..............................................................
2.6.4
Nichtabweisende Schleifen ......................................................
2.6.5
Zählschleifen ............................................................................
2.6.6
Endlosschleifen ........................................................................
2.6.7
Schleifen vorzeitig verlassen .....................................................
69
69
76
77
82
84
90
90
2.7
Fehlerbehandlung und Fehlersuche ...................................................... 91
2.7.1
Fehlersuche mit dem Debugger ............................................... 92
2.7.2
Skripte gezielt debuggen .......................................................... 94
2.7.3
Laufzeitfehler behandeln .......................................................... 97
2.7.4
Fehler simulieren ..................................................................... 102
2.8
Datenfelder und Datentypen ................................................................
2.8.1
Was sind Arrays .......................................................................
2.8.2
Arrays definieren und verwenden ............................................
2.8.3
Mehrdimensionale Arrays nutzen .............................................
2.8.4
Dynamische Arrays definieren ..................................................
2.8.5
Arrays löschen .........................................................................
3
Objektorientierte Programmierung mit
dem Windows Script Host
3.1
6
104
104
105
108
110
113
115
Konzepte der objektorientierten Programmierung ............................... 117
3.2
Der Lebenszyklus von Objekten ........................................................... 118
3.3
Umgang mit Objekten in VBScript ....................................................... 119
Inhalt
3.4
Das WScript-Objekt des Windows Script Host ....................................
3.4.1
WSH-Informationen ermitteln ..................................................
3.4.2
Namen und Verzeichnis des Skriptes ermitteln .........................
3.4.3
Skriptparameter abrufen und verwenden ..................................
3.4.4
Ausgaben mit dem WScript-Objekt ..........................................
3.4.5
Objekte erzeugen .....................................................................
3.4.6
Skripte vorübergehend anhalten mit der Sleep-Methode ..........
121
121
122
124
127
129
130
3.5
Das WSHShell-Objekt ...........................................................................
3.5.1
Das WSHShell-Objekt erstellen ................................................
3.5.2
Systeminformationen ermitteln ................................................
3.5.3
Programme starten mit Run und Exec ......................................
3.5.4
Systemverzeichnisse ermitteln ..................................................
3.5.5
Desktop- und Startmenüverknüpfungen erstellen .....................
131
131
134
137
142
143
3.6
Sonstige wichtige Objekte für die Programmierung ............................. 146
3.6.1
Netzwerkzugriffe ...................................................................... 147
4
Arbeiten mit dem Dateisystem
4.1
Wichtige Eigenschaften und Methoden des FSO ..................................
4.1.1
Dateinamen zusammensetzen ..................................................
4.1.2
Pfad- und Dateinamen aus Pfadangaben ermitteln ...................
4.1.3
Prüfen, ob Dateien oder Verzeichnisse existieren ......................
155
156
157
158
4.2
Arbeiten mit Textdateien ......................................................................
4.2.1
Textdateien öffnen und schließen .............................................
4.2.2
Dateien lesen ...........................................................................
4.2.3
Neue Textdateien erzeugen ......................................................
4.2.4
In Textdateien schreiben ..........................................................
159
159
161
167
169
4.3
Zugreifen auf Dateien und Verzeichnisse ..............................................
4.3.1
Wichtige Eigenschaften und Methoden des Folder-Objekts ......
4.3.2
Handhabung des File-Objekts ..................................................
4.3.3
Dateieigenschaften ermitteln ....................................................
170
173
177
179
4.4
Setup-Programme erstellen ..................................................................
4.4.1
Die INI-Datei lesen ..................................................................
4.4.2
Zielverzeichnis anlegen .............................................................
4.4.3
Dateien kopieren .....................................................................
4.4.4
Protokoll führen .......................................................................
4.4.5
Erweiterungsmöglichkeiten ......................................................
182
183
185
189
191
195
153
4.5
Dateien, Desktop- und Startmenüverknüpfungen löschen ................... 195
4.6
Dateien suchen und Verzeichnisse durchlaufen .................................... 196
5
Zugreifen auf die Registry
5.1
Vorbereitungen für den Zugriff auf die Registry .................................... 203
5.2
Registry-Einträge lesen, ändern und erzeugen ...................................... 204
201
Inhalt
7
8
5.3
Schlüssel und Werte löschen ................................................................ 207
5.4
Tipps und Tricks für das Arbeiten mit der Registry ............................... 208
6
Anwendungen steuern
6.1
Office-Anwendungen per Objektautomation steuern ..........................
6.1.1
Einen Foto-Index mit Word erzeugen ......................................
6.1.2
Datenbankzugriffe auf Access-Daten realisieren .......................
6.1.3
Excel steuern ...........................................................................
6.2
Den Internet Explorer steuern .............................................................. 240
6.3
Steuerung durch Tastenfolgen ..............................................................
6.3.1
Tastenfolgen zusammensetzen .................................................
6.3.2
Internet Explorer steuern .........................................................
6.3.3
DFÜ-Verbindung aufbauen ......................................................
6.3.4
Systemsteuerung aufrufen ........................................................
7
Quellcode wieder verwenden
7.1
Skriptbibliotheken erstellen und nutzen ..............................................
7.1.1
Aufbau einer WSF-Datei ..........................................................
7.1.2
WSF-Dateien und WSF-Jobs aufrufen ......................................
7.1.3
Ressourcen definieren ..............................................................
7.1.4
Parameterwerte und Rückgabewerte
für Jobs und Skripte der WSF-Datei .........................................
7.1.5
Globale Objekte für einen Job definieren .................................
7.1.6
Skripte beschreiben und dokumentieren ..................................
211
214
215
223
234
242
243
245
247
248
251
253
254
255
257
258
259
260
7.2
Skriptkomponenten erstellen ............................................................... 262
7.2.1
Klassen, der erste Schritt zur Komponente ............................... 262
7.2.2
Skriptkomponenten erstellen ................................................... 268
8
Benutzeroberflächen erstellen
8.1
Vorteile und Beschränkungen von HTA-Dateien gegenüber HTML ...... 280
8.2
Aufbau einer HTA-Datei ....................................................................... 281
8.2.1
Skripte aufrufen und Quellcode integrieren .............................. 283
8.3
Formulare gestalten .............................................................................. 288
8.4
Ein- und Ausgaben in der HTA-Datei machen ...................................... 291
8.4.1
Eine HTA-Datei für mehrere Skripte ......................................... 296
8.5
Die Anwendung formatieren ................................................................ 303
8.5.1
Was sind Cascading StyleSheets? ............................................. 303
8.5.2
StyleSheets definieren und verwenden ..................................... 303
Inhalt
277
9
Sicherheit
317
9.1
Allgemeine Sicherheitstipps und -ratschläge ........................................
9.1.1
Outlook- und Outlook-Express-Sicherheitseinstellungen
heraufsetzen ............................................................................
9.1.2
Sicherheitseinstellungen des Internet Explorers einstellen .........
9.1.3
Dateinamenserweiterungen einblenden ...................................
9.1.4
Benutzer einrichten und verwalten ...........................................
319
321
323
325
327
9.2
Die Sicherheit mit Virenscannern erhöhen ............................................ 329
9.3
Das Sicherheitskonzept des WSH 5.6 ...................................................
9.3.1
Skripte signieren ......................................................................
9.3.2
Skripte verifizieren ...................................................................
9.3.3
Zertifikate zur den vertrauenswürdigen Stammzertifikaten
hinzufügen ...............................................................................
9.3.4
Die Sicherheit des Windows Script Host aktivieren ...................
331
331
334
337
340
A
Referenz
347
A.1
Wichtige VBScript-Anweisungen und Funktionen ................................ 347
A.2
Konstrukte zur Programmablaufsteuerung ............................................ 348
A.3
Funktionen und Anweisungen zur Zeichenkettenbearbeitung .............. 349
A.4
WScript-Objekt ..................................................................................... 350
A.4.1
Eigenschaften ........................................................................... 350
A.4.2
Methoden ................................................................................ 350
A.5
WScript.Shell-Objekt ............................................................................ 351
A.5.1
Eigenschaften ........................................................................... 351
A.5.2
Methoden ................................................................................ 352
A.6
WSHShortcut-Objekt ............................................................................ 355
A.6.1
Eigenschaften ........................................................................... 355
A.6.2
Methoden ................................................................................ 355
A.7
WSHUrlShortcut-Objekt ....................................................................... 356
A.7.1
Eigenschaften ........................................................................... 356
A.7.2
Methoden ................................................................................ 356
A.8
WSHNetwork-Objekt (WScript.Network) ............................................ 356
A.8.1
Eigenschaften ........................................................................... 356
A.8.2
Methoden ................................................................................ 356
A.9
TextStream-Objekt ............................................................................... 357
A.9.1
Eigenschaften ........................................................................... 357
A.9.2
Methoden ................................................................................ 357
A.10
FileSystemObject-Objekt ...................................................................... 357
A.10.1 Methoden ................................................................................ 357
Inhalt
9
10
A.11
File-Objekt ........................................................................................... 358
A.11.1 Eigenschaften .......................................................................... 358
A.11.2 Methoden ............................................................................... 359
A.12
Folder-Objekt ....................................................................................... 359
A.12.1 Eigenschaften .......................................................................... 359
A.12.2 Methoden ............................................................................... 359
A.13
Drive-Objekt ........................................................................................ 360
A.13.1 Eigenschaften .......................................................................... 360
A.14
Scripting.Signer-Objekt ........................................................................ 360
A.14.1 Methoden ............................................................................... 360
A.15
Operatoren ........................................................................................... 361
A.16
Präfixe für Variablen und Konstanten ................................................... 363
A.17
Definierte VBScript-Fehler .................................................................... 363
A.18
Umgebungsvariablen des WSHEnvironment-Objekts .......................... 368
A.19
WSF-Dateien ........................................................................................ 369
A.19.1 Elemente ................................................................................. 369
A.19.2 Ausführen von Code in WSF-Dateien ....................................... 369
A.20
WSC-Dateien für Skriptkomponenten .................................................. 369
A.21
HTA-Dateien .........................................................................................
A.21.1 Attribute für das <hta:application>-Element .............................
A.21.2 HTML-Elemente ......................................................................
A.21.3 CSS-Formatierungen ................................................................
A.22
Beispielskripte ...................................................................................... 373
370
370
371
372
Glossar
379
Index
383
Inhalt
Vorwort
Der WSH ist die ideale Entwicklungsumgebung, nicht nur um kleinere Programmieraufgaben zu bewältigen und wiederkehrende Vorgänge in Windows
zu automatisieren, sondern er eignet sich auch hervorragend, um programmieren zu lernen. Sie brauchen nämlich nicht erst Software im Wert von ein paar
hundert Euro, sondern bekommen alles, was Sie brauchen, vom Editor bis zum
Debugger und der Laufzeitumgebung kostenlos, die passende Windows-Version vorausgesetzt.
Mit diesem Buch werden Sie nicht nur langsam in die Programmierung eingeführt, Sie können auch schon nach den ersten Kapiteln nützliche kleine Programme erstellen, die Ihnen das Leben mit Windows leichter machen. Am
Ende beherrschen Sie zudem die wichtigen Programmierkonzepte, die es Ihnen
ermöglichen, Ihre Kenntnisse um andere Programmiersprachen wie VBA und
Visual Basic zu erweitern und neben Windows auch die Office-Anwendungen,
CorelDRAW oder andere VBA-Hostanwendungen zu steuern.
Und natürlich erfahren Sie in diesem Buch auch, wie Sie Windows trotz WSH
sicher machen. Mit den passenden Sicherheitseinstellungen und einem aktuellen Virenscanner ist das gar kein Problem. Der WSH und eine sichere WindowsOberfläche widersprechen sich also keinesfalls.
Die Beispiele zum Buch finden Sie auf der Website des Verlags: www.galileocomputing.de. Entpacken Sie die ZIP-Datei bitte mit den Verzeichnissen, da
die Skripte nach Kapiteln sortiert sind und in einigen Verzeichnissen Skripte
mit gleichen Namen vorkommen.
Sollten Sie Fragen haben oder Kritik anbringen wollen, können Sie mich über
das Kontaktformular auf meiner Website erreichen: www.helma-spona.de.
Dort finden Sie auch Fehlerberichtigungen.
Und nun viel Spaß beim Programmieren mit dem WSH und gutes Gelingen.
Ihre Helma Spona
Vorwort
11
1
2
1 Einführung
3
4
1.1 Was kann der WSH? .................................... 15
5
1.2 Den WSH 5.6 installieren ............................ 17
6
1.3 Quellcode-Editoren ..................................... 22
7
8
1.4 Das erste Skript erstellen und starten ......... 24
9
1.5 Optionen zur Konfiguration einsetzen ......... 31
A
1.6 Skripte mit WSH-Dateien konfigurieren ..... 32
B
1.7 Syntaxbeschreibungen verstehen ................ 34
1
Einführung
2
Sprachgrundlagen von VBScript
3
Objektorientierte Programmierung mit dem Windows Script Host
4
Arbeiten mit dem Dateisystem
5
Zugreifen auf die Registry
6
Anwendungen steuern
7
Quellcode wieder verwenden
8
Benutzeroberflächen erstellen
9
Sicherheit
A
Referenz
B
Glossar
1
2
1
Einführung
3
Nach Melissa und Co. ist der Windows Script Host ganz zu Unrecht
von vielen Administratoren als das Übel schlechthin angesehen worden. Jedoch nicht der WSH ist das Problem, sondern der Benutzer, der
vor dem Rechner sitzt.
4
5
6
Der Windows Script Host (WSH) hat in den letzten Jahren vor allem durch die
immer wieder auftauchenden Skript-Viren von sich reden gemacht. Trotzdem
ist und bleibt sein Nutzen hoch, wenn man die Gefahren kennt, korrekt einschätzt und erst denkt und dann klickt. Wo die Gefahren und Möglichkeiten
des WSH liegen, wie Sie ihn installieren und welche Programme es zur Quelltexterfassung gibt, zeigt Ihnen dieses erste Kapitel.
1.1
7
8
9
Was kann der WSH?
Ursprünglich war der Windows Script Host als Nachfolger der Batch-Programmierung von MS DOS geplant. Deren Möglichkeiten übertraf aber schon die
Version 1 des Windows Script Host, die 1998 veröffentlicht wurde. Damals
hieß er noch Windows Scripting Host. Schon diese erste Version war in der
Lage, die Registry zu manipulieren und auf andere Anwendungen, wie etwa die
Microsoft-Office-Programme, zuzugreifen und das Dateisystem zu manipulieren. Für die Batch-Verarbeitung war der WSH 1.0 daher ausgesprochen gut
geeignet. Mittlerweile ist die Version 5.6 des WSH aktuell. Damit ist es sogar
möglich, Skripte auf anderen Rechnern im Netzwerk zu starten (Remote Scripting), Skripte zu signieren und die Skriptausführung unsignierter Skripte mit
Sicherheitseinstellungen zu unterbinden oder einzuschränken. Vor allem die
Sicherheit ist das wichtigste Argument zum Einsatz der neuesten Version.
Skripte für den WSH lassen sich ganz einfach mit jedem Texteditor erstellen
und ausführen. Sie brauchen also weder eine teure Entwicklungsumgebung,
noch müssen Sie Ihre Hardware aufrüsten, um die Skripte benutzen zu können.
Jeder kann Skripte erstellen und schreiben. Aus diesem Grund eignen sie sich
hervorragend, um wiederkehrende Alltagsaufgaben zu lösen wie:
왘 Festplatte aufräumen, Dateien komprimieren, umbenennen oder in Ver-
zeichnisse aufteilen
왘 Startmenüeinträge erstellen
왘 kleine Setup-Programme erstellen
왘 Registry-Einträge anpassen oder REG-Dateien einlesen
Einführung
15
왘 fremde Programme steuern
왘 Datenbankabfragen ausführen
Grafische Benutzeroberflächen kennt der WSH jedoch nicht. Allerdings gibt es
die Möglichkeit, den Internet Explorer und HTML für diesen Zweck zu benutzen, so dass Sie richtige kleine Programme mit dem WSH schreiben können.
Neben den Aufgaben, die sich schon bisher mit BAT-Dateien mehr oder weniger elegant lösen ließen, bietet der WSH somit noch vieles mehr. Sie können
nämlich Komponenten erstellen, die Sie nicht nur in WSH-Skripten, sondern
auch in VBA- und Visual-Basic-Anwendungen einsetzen können.
1.1.1
Die Gefahren des WSH
Eine Gefahrenquelle für die Daten des Rechners ist der WSH nur dann, wenn
man sorglos mit seinem Rechner umgeht. Sofern Sie erst denken und dann klicken, kann es nicht passieren, dass Sie versehentlich ein fremdes Skript ausführen und sich so den Rechner mit Viren und Würmern verseuchen. Alle Skriptdateien werden ordnungsgemäß von Windows als Skripte mit entsprechenden
Symbolen kenntlich gemacht. Daran können Sie schon vor der Ausführung
erkennen, dass es sich um eine Skriptdatei handelt. Als Symbol wird eine ausgerollte Skriptrolle angezeigt, die abhängig vom Dateityp unterschiedliche Farben haben kann. Aus dem Internet Explorer mit aktuellen Sicherheitsupdates
kann eine Skriptdatei nur dann ausgeführt werden, wenn Sie extrem niedrige
Sicherheitseinstellungen haben oder die Ausführung explizit bestätigen. Und
hier gilt dann natürlich wieder: Erst denken, dann klicken.
Hinweis Gewappnet mit einem aktuellen Virenscanner passiert aber auch
dann nichts, wenn Sie Skripte versehentlich ausführen. Heutige Virenscanner warnen rechtzeitig vor gefährlichen Befehlen in den Skripten und unterbinden standardmäßig deren Ausführung.
Vom WSH geht also mit minimalen Sicherheitsvorkehrungen keine größere
Gefahr aus. Mehr zum Thema Sicherheit erfahren Sie in Kapitel 9, Sicherheit.
1.1.2
Was ist der WSH?
Der WSH selbst stellt lediglich zwei Programme, CScript und WScript, zur Verfügung, zwei Laufzeitumgebungen für Skripte. Sie sorgen dafür, dass der SkriptQuellcode eingelesen und auf Fehler geprüft wird und, falls er fehlerfrei ist,
durch den Interpreter der jeweiligen Skriptsprache ausgeführt wird. Der WSH
ist somit vergleichbar mit einer VBA-Hostanwendung. Auch sie stellt nur die
Laufzeitumgebung für die VBA-Anwendungen dar.
16
Einführung
1
2
Für alle (Noch-)Nicht-Programmierer: Die Laufzeitumgebung ist vergleichbar mit einer Eislaufbahn. Sie stellt den Läufern den Raum und die Technik
zur Verfügung, die diese zum Schlittschuhlaufen benötigen. Laufen müssen
sie jedoch selbst und können dies mit ganz verschiedenen Schlittschuhen
tun.
3
4
5
Der WSH ermöglicht von sich aus die Programmierung in zwei Skriptsprachen,
nämlich JScript und VBScript. Darüber hinaus kann er jedoch erweitert werden, so dass auch die Nutzung von PHP, Perl, Phyton, ReXX etc. denkbar ist. Der
Interpreter muss dazu nur in den WSH integriert werden. Das ist ohne spezielle
Schnittstellenprogrammierung des Interpreters aber nicht möglich. Er muss
also speziell an den WSH angepasst werden.
6
7
8
Neben den Interpretern für JScript und VBScript sowie der Laufzeitumgebung
stellt der WSH außerdem noch Objektbibliotheken zur Verfügung, mit deren
Hilfe Sie erst die Möglichkeiten des WSH voll ausschöpfen können. Sie sind die
Basis der WSH-Programmierung und können von allen Skriptsprachen des
WSH genutzt werden.
1.1.3
9
Die Wahl der Skriptsprache
Welche Skriptsprache Sie nutzen möchten, hängt von Ihren persönlichen Vorlieben ab. Sowohl mit JScript als auch mit VBScript können Sie alle prinzipiell
mit dem WSH lösbaren Aufgaben bewältigen. In einigen Fällen ist der Aufwand
zwar unterschiedlich hoch, aber auf Dauer gleicht es sich wieder aus.
VBScript ist allerdings von der Syntax her einfacher zu lernen, vor allem, wenn
Sie vielleicht schon Basic-, Visual-Basic- oder VBA-Kenntnisse mitbringen.
VBScript ist nämlich eine Teilmenge von VBA und das wiederum stellt eine Teilmenge des Sprachumfangs von Visual Basic dar. Die Syntax von VBScript, das
heißt, wie Befehle aufgebaut sind, ist fast identisch mit der von VBA und Visual
Basic und die VBScript-Befehle, die Sie für den WSH benötigen, sind auch in
VBA und Visual Basic enthalten.
VBScript verzeiht zudem Fehler, die JScript nicht gestattet. Gerade für den Einstieg ist VBScript daher die bessere Skriptsprache. Sie wird daher auch für alle
Beispiele dieses Buches verwendet.
1.2
Den WSH 5.6 installieren
Bevor Sie loslegen können, müssen Sie aber den WSH installieren. Die aktuelle
Version 5.6 ist bereits in Windows XP integriert. Wenn Sie Windows XP verwenden, können Sie die nachfolgenden Abschnitte überspringen und mit der
Den WSH 5.6 installieren
17
Installation der Dokumentation fortfahren. Für alle übrigen Windows-Versionen ab Windows 98 ist ein Update erforderlich, wenn das nicht schon erfolgt
ist. Für Windows 95 steht der WSH leider nur bis zur Version 2.0 zur Verfügung. Sie können damit zwar auch einen Großteil der Beispiele nachvollziehen,
einige erfordern jedoch zwingend die Version 5.6.
1.2.1
Die aktuelle WSH-Version ermitteln
Damit Sie wissen, ob Sie vielleicht schon die aktuelle Version installiert haben,
sollten Sie die aktuelle Version des WSH ermitteln. Das ist recht einfach. Sie
müssen dazu nur das Programm Cscript.exe starten. Gehen Sie dazu folgendermaßen vor:
1. Starten Sie zunächst die DOS-Box beziehungsweise die Eingabeaufforderung
von Windows.
2. Geben Sie nun cscript.exe (¢) ein. Die WSH-Version wird nun in der
zweiten Zeile ausgegeben. Steht hier ein Wert kleiner als 5.6, sollten Sie ein
Update durchführen.
Abbildung 1.1 Nach Aufruf von cscript.exe wird in der zweiten Zeile die
WSH-Version angezeigt.
1.2.2
Den WSH herunterladen
Die aktuelle Version des WSH finden Sie auf der Internetseite von Microsoft.
Der Bereich, der sich ausschließlich mit Windows-Skripting beschäftigt, ist
unter dem URL www.microsoft.com/germany/scripting zu finden. Leider ist
es so, dass diese Seite extrem viele fehlerhafte Links enthält. Oftmals ist der
WSH hierüber nicht herunterzuladen, weil der Link zur Downloadseite fehlerhaft ist. Versuchen können Sie es aber. Klicken Sie dazu einfach auf den Link
Windows Script 5.6 freigegeben.
18
Einführung
1
2
3
4
5
6
7
8
9
Abbildung 1.2 Windows Script 5.6 freigegeben
Wenn Sie Glück haben, gelangen Sie nun zur Download-Seite, auf der Sie nicht
nur den WSH für Ihre Windows-Version herunterladen können, sondern auch
die Dokumentation. Sollten Sie statt dessen die Meldung erhalten, dass die
Seite nicht gefunden wurde, müssen Sie das Ganze anders angehen. Zuerst können Sie versuchen, ob die Seite unter folgendem URL erreichbar ist:
www.microsoft.com/downloads/details.aspx?displaylang=de&
FamilyID=E74494D3-C4E1-4E18-9C6C-0EA28C9A5D9D
Wenn auch das nicht klappt, müssen Sie sich auf die Suche machen, indem Sie
die Microsoft Download-Seite aufrufen.
1. Rufen Sie Ihren Browser auf und geben Sie als URL www.microsoft.com/
downloads/search.aspx?displaylang=de ein. Sie gelangen dann in das
deutsche Downloadcenter.
2. Geben Sie nun in das Feld Stichwörter den Begriff WSH 5.6 ein und klicken
Sie auf Go.
3. Das Ergebnis der Suche sollten zwei Links zum Download des WSH sein.
Abhängig von Ihrer Windows-Version brauchen Sie nun nur noch den entsprechenden Link anzuklicken und auf der Folgeseite rechts oben auf Download zu klicken.
Den WSH 5.6 installieren
19
Abbildung 1.3 Suchen nach dem WSH-Download im Downloadcenter
1.2.3
Die Installation durchführen
Nach dem Download des WSH können Sie ihn installieren. Sie sollten dazu alle
Office-2000-/XP-Anwendungen und auch alle Visual-Basic-6-Anwendungen
schließen. Ansonsten kann es passieren, dass einige Dateien beim Setup nicht
aktualisiert werden können. Falls Sie sich nicht sicher sind, beenden Sie einfach
alle laufenden Programme.
Hinweis Ganz wichtig ist, dass Sie in jedem Fall Ihren Virenscanner beenden oder vorübergehend deaktivieren. Die meisten Virenscanner verhindern
nämlich die Installation des WSH. Vergessen Sie aber auf keinen Fall, den
Virenscanner wieder zu aktivieren, wenn die Installation abgeschlossen ist.
Wenn Sie mit den Vorbereitungen fertig sind, brauchen Sie nur die Datei
scriptde.exe (für Windows 2000 und XP) auszuführen beziehungsweise die
Datei scr56de.exe für Windows 9x, Windows Me und Windows NT 4. Die
Installation erfolgt dann vollkommen unproblematisch. Nach deren Abschluss
sollten Sie allerdings den Rechner neu starten, damit die installierten Objektbibliotheken registriert werden und zur Verfügung stehen.
1.2.4
Die WSH-Dokumentation herunterladen
Für eine effektive Arbeit mit dem WSH ist die Dokumentation sinnvoll, die
sogar in Deutsch verfügbar ist. Sie finden sie auf der regulären Download-Seite
20
Einführung
1
2
des WSH, wenn es Ihnen gelingt sie über den URL www.microsoft.com/
germany/scripting aufzurufen. Dann steht der Link zum Download ganz
unten auf der Seite.
3
4
5
6
7
8
9
Abbildung 1.4 Der Link zum Download der Dokumentation
Wenn es Ihnen nicht gelingen sollte, diese Seite aufzurufen, versuchen Sie es
mit folgendem URL:
http://download.microsoft.com/download/winscript56/Install/5.6/
W98NT42KMe/DE/scd56de.exe
Falls auch das nicht gelingt, bleibt nur die Suche bei Google (www.google.de)
übrig. Suchen Sie damit direkt nach der Datei scd56de.exe. Sie werden eine
ganze Reihe Suchergebnisse erhalten, von denen sicherlich einige den passenden Download liefern.
1.2.5
Die Dokumentation installieren und starten
Nach dem Download lässt sich die Dokumentation ganz einfach per Doppelklick auf die EXE-Datei installieren. Im ersten Dialogfeld brauchen Sie nur den
vorgeschlagenen Installationspfad zu bestätigen, können aber auch über
Durchsuchen ein neues Verzeichnis auswählen. Klicken Sie dann auf OK, wird
die Dokumentation ohne weitere Rückfragen installiert. Starten können Sie sie
dann über Start • Alle Programme • Microsoft Windows Script • Windows
Script V5.6 Dokumentation. Verwenden Sie nicht Windows XP, lautet der
Eintrag entsprechend Start • Programme • Microsoft Windows Script • Windows Script V5.6 Dokumentation.
Den WSH 5.6 installieren
21
Abbildung 1.5 Die Dokumentation zum WSH 5.6
Im Inhaltsverzeichnis können Sie über den Eintrag VBScript direkt auf das
VBScript-Handbuch und das Sprachverzeichnis zugreifen. Das sind die beiden
wichtigsten Hilfen für den Anfang. Sie erläutern VBScript, ohne jedoch auf die
Besonderheiten des WSH einzugehen. Mit VBScript können Sie nämlich nicht
nur Skripte für den WSH schreiben, sondern auch Internetseiten interaktiv
gestalten oder Outlook 97 und Outlook 98 programmieren. Details zum WSH
finden Sie unter dem Punkt Windows Script Host.
1.3
Quellcode-Editoren
Neben dem WSH und der Dokumentation benötigen Sie zur Programmierung
noch einen Editor, mit dem Sie den Quellcode, also den Programmtext der
Skripte, erfassen können. Es eignet sich im Prinzip jeder Editor, der in der Lage
ist, reine ASCII-Dateien ohne Formatierungen zu speichern. Im Zweifelsfall
können Sie also den Windows-Editor verwenden. Der ist allerdings nicht
sonderlich komfortabel, weil Sie zumindest in der in Windows 9x und
Windows NT integrierten Version nicht einmal die Zeilen- und Spaltenanzahl
an der Cursorposition angezeigt bekommen. Das ist aber für die Fehlersuche
erforderlich. Für kurze Skripte ist der Windows-Editor daher zwar ausreichend,
für längere und komplexere sollten Sie sich aber nach einer Alternative umsehen. Davon gibt es mittlerweile eine ganze Reihe, von denen die folgende
Tabelle eine kleine Auswahl zeigt.
22
Einführung
1
2
Editor
Autor/Hersteller
Download-Adresse
Beschreibung
Eddi
Helma Spona
www.helma-spona.de/
buchdb/lstBuchdaten.php?ID=39
Ein einfacher Editor, der
neben der Anzeige der Cursorposition auch die direkte
Ausführung des Skriptes
über den WSH ermöglicht.
Scripting Spy
Trial
NoteTab Light
Dr. Tobias Weltner www.scriptinternals.de
Fookes Software
3
4
5
Der Editor bietet Syntaxhervorhebung und eine
Programmierhilfe. Bei Eingabe bestimmter Schlüsselwörter werden Informationen zum Befehl angezeigt.
Leider ist der Editor gelegentlich etwas träge.
www.notetab.com/
download.htm#ntl
Ein guter, einfacher Textund HTML-Editor, der aber
für WSH-Entwickler nichts
Besonderes bietet.
Der Editor bietet eine farbige Hervorhebung von
Quellcodebestandteilen
und somit auch eine grobe
Syntaxprüfung. Die direkte
Ausführung der Skripte ist
aber nicht möglich.
VBScript
Editor V.1.3
Koan Software
www.koansoftware.com/Eng/
script.htm
Primalscript
Sapien
www.primalscript.com/ Während die vorstehenden
primalscript.htm
Editoren alle kostenlos
waren, ist Primalscript mit
179 US-$ nicht gerade
preiswert. Es gibt aber zum
Testen auch eine 30-Tage
Testversion. Der Editor ist
mit Sicherheit der beste,
den es derzeit gibt. Er bietet nicht nur zahlreiche Programmierhilfen, sondern
auch eine Projektverwaltung und Syntaxhervorhebung.
6
7
8
9
Tabelle 1.1 Überblick über nützliche Skript-Editoren
Neben den oben erwähnten Programmen können Sie aber auch jeden anderen
Editor nutzen, der folgende Funktionen bietet:
왘 Speichern und Bearbeiten von Textdateien ohne Formatierung
왘 freie Wahl der Dateinamenserweiterung beziehungsweise Unterstützung der
Erweiterung .vbs
Quellcode-Editoren
23
왘 Anzeige der Zeilennummern oder Springen zu bestimmen Zeilen
왘 Suchen-Ersetzen
Weiterhin wären folgende Funktionen nützlich, aber nicht erforderlich:
왘 Starten des Skriptes direkt aus dem Editor
왘 Farbige Hervorhebung des Codes – Syntaxhighlighting
왘 Lesezeichen
왘 Programmierhilfen
Unter Programmierhilfen werden eine Reihe verschiedener Funktionen verstanden, die bei der Codeeingabe helfen. Dazu gehören die Vervollständigung von
Schlüsselwörtern während der Eingabe (Codevervollständigung), die Anzeige
von Konstanten und Elementen von Auflistungen (Elementliste) sowie die
Anzeige von Informationen zu Aufrufparametern (Parameterinfo). Vor allem,
wenn Sie in die Programmierung mit VBScript einsteigen und noch keinerlei
Programmierkenntnisse in VBA und Visual Basic haben, werden Ihnen solche
Programmierhilfen die ersten Schritte sehr erleichtern.
1.4
Das erste Skript erstellen und starten
Nach so vielen Vorbereitungen geht es nun an das erste Skript. Als Editor
kommt hier die Trial-Version von Scripting Spy zum Einsatz. Wenn Sie einen
anderen Editor verwenden, sollten Sie sich vorab mit den folgenden Grundfunktionen vertraut machen:
왘 neue Datei erzeugen
왘 speichern als Textdatei mit der Endung .vbs
왘 öffnen und bearbeiten vorhandener Dateien
1.4.1
Scripting Spy starten
Nach der Installation von Scripting Spy, die Sie einfach durch einen Klick auf
die heruntergeladene MSI-Datei (MSI = Microsoft Installer) starten können,
finden Sie im Startmenü von Windows einen Eintrag, über den Sie das Programm starten können: Start • Alle Programme • Spy 3.0 Trial beziehungsweise Start • Spy 3.0 Trial. Der erste Start kann unter Umständen etwas länger
dauern, weil das Programm zunächst die für Skripte verfügbaren Objektbibliotheken des Systems analysieren muss. Haben Sie also etwas Geduld. Spätere
Starts sind sehr viel schneller.
24
Einführung
1
2
3
4
5
6
7
8
9
Abbildung 1.6 Scripting Spy nach dem Start
Scripting Spy erzeugt automatisch beim Start eine neue, leere Skriptdatei. Verwenden Sie einen anderen Editor, müssen Sie diese unter Umständen noch
erzeugen. Erstellen Sie dazu eine einfache ASCII-Textdatei in Ihrem Editor.
1.4.2
Kommentarzeilen ergänzen
Neue Dateien in Scripting Spy beginnen mit neun Kommentarzeilen. Diese
werden in Scripting Spy und vielen anderen Programmen mit Codehervorhebung grün dargestellt. Kommentarzeilen werden in VBScript durch ein Hochkomma eingeleitet. Alles, was danach bis zum Ende der Zeile folgt, ist ein Kommentar und wird bei der Ausführung des Skriptes nicht berücksichtigt. Sie
können Kommentare also sehr gut zur Dokumentation Ihrer Skripte verwenden. Den Ansatz dazu zeigt Scripting Spy. Zeile sieben bietet bereits die Möglichkeit, den vorhandenen Platzhalter <kommentar> durch eine Beschreibung
des Skriptes zu ersetzen.
1. Markieren Sie dazu zunächst den Platzhalter mit der Maus.
2. Überschreiben Sie ihn nun einfach mit Ihrem Wunsch-Kommentar, beispielsweise Mein erstes Skript ...
Hinweis Was Sie in die Kommentarzeile einfügen, spielt keine Rolle.
Beim Ausführen des Skriptes werden Kommentarzeilen behandelt, als
wenn die Zeilen nicht vorhanden wären.
Das erste Skript erstellen und starten
25
Abbildung 1.7 Der geänderte Kommentar
1.4.3
Die Programmierhilfen kennen lernen
Ausführbare Befehle können an jeder beliebigen Stelle in einem Skript stehen,
also sowohl vor den Kommentarzeilen als auch danach oder zwischendrin. Nur
innerhalb einer Kommentarzeile dürfen sie nicht stehen, weil sie dann auch als
Kommentar behandelt werden.
Üblich ist es aber, Kommentare bezüglich der Aufgabe der Skriptes an den
Anfang zu setzen und mit dem Skriptcode unterhalb dieser Kommentare zu
beginnen. Wenn Sie also die erste Anweisung eingeben möchten, setzen Sie
den Cursor einfach in Zeile zehn.
Das erste Beispiel soll eine Meldung in einem Dialogfenster ausgeben. Daran
lassen sich dann auch sehr schön die Programmierhilfen von Scripting Spy
demonstrieren. Sowohl der WSH als auch VBScript bieten verschiedene Möglichkeiten, eine Meldung auszugeben. Hier kommt die MsgBox-Funktion von
VBScript zum Einsatz:
1. Beginnen Sie mit der Eingabe in Zeile zehn, indem Sie msg eingeben. Sofort
öffnet sich ein kleines Fenster, das alle Befehle auflistet und gleich das Element markiert, das mit den eingegebenen Buchstaben beginnt. Hier ist es
korrekt die gewünschte Funktion MsgBox.
2. Drücken Sie nun die (ÿ__)-Taste, wird der Code vervollständigt und der
markierte Befehl eingefügt. Diese Funktion wird Codevervollständigung
genannt.
3. Im unteren, gelb unterlegten Teil des Fensters zeigt Scripting Spy nun die
Parameterinformationen an. Parameter sind Werte, die an einen Befehl übergeben werden. Bei der MsgBox-Funktion definieren sie Aussehen und Inhalt
des Textes, der als Meldung angezeigt wird. Die Parameter werden in Klam-
26
Einführung
1
2
mern nach dem Befehlsnamen, hier MsgBox, angezeigt und durch Kommata
voneinander getrennt. Das Wort ByVal gibt an, dass der Parameter als Wert
übergeben werden muss.
3
4
5
6
7
8
9
Abbildung 1.8 Die Elementliste von Scripting Spy
Hinweis Welche Alternativen es sonst noch gibt und was dies im Detail
bedeutet, erfahren Sie in Kapitel 2, Sprachgrundlagen von VBScript.
4. Danach wird immer der Name des Parameters angegeben. Steht er in Klammern, beispielsweise [buttons], muss er nicht angegeben werden, sondern
ist optional. Danach folgt As Variant. Damit wird der Datentyp des Parameters angegeben. Da es in VBScript aber nur einen Datentyp gibt, brauchen Sie
sich darüber keine Gedanken zu machen.
Abbildung 1.9 Die Parameterinformationen des Befehls werden im unteren Teil des Editors
angezeigt.
5. Alles, was Sie nun tun müssen, ist den ersten Parameter anzugeben. Damit
definieren Sie den auszugebenden Text. Alle weiteren Parameter sind optional, können also zunächst entfallen. Der Cursor sollte hinter dem Wort
MsgBox stehen. Geben Sie nun ein Leerzeichen und dann den auszugebenden
Das erste Skript erstellen und starten
27
Text ein, den Sie aber in Anführungszeichen oben einfassen müssen. Das
komplette Listing sollte am Ende wie folgt aussehen:
' **************************************************
' *
' * VBScript Quelldatei -- erstellt mit Scripting Spy 3.0
' *
' *
' *
' * HINWEISE: Mein erstes Skript – es gibt "Hallo Welt" aus.
' *
' **************************************************
MsgBox "Hallo Welt"
1.4.4 Das Skript speichern und ausführen
Sie können das Skript nun speichern und ausführen. Wählen Sie dazu einfach
Datei • Speichern aus dem Menü aus und geben Sie einen Namen Ihrer Wahl
in das Feld Dateiname ein.
Abbildung 1.10 Speichern der Datei
Hinweis Scripting Spy wählt als Dateityp automatisch VBScript aus und
vergibt die notwendige Dateinamenserweiterung .vbs. Bei anderen Editoren
müssen Sie eventuell selbst auf eine korrekte Namensvergabe achten. Steht
VBScript als Dateityp nicht zur Verfügung, wählen Sie Textdateien, Nur-Text
oder ASCII-Text aus und geben die Dateinamenserweiterung .vbs nach dem
Dateinamen selbst an. Verwenden Sie Notepad oder den Windows-Editor,
müssen Sie als Dateityp Alle Dateien auswählen, damit nicht an die Endung
.vbs auch noch ein .txt angehängt wird.
28
Einführung
1
2
3
4
5
6
7
8
9
Abbildung 1.11 Notwendige Einstellungen beim Speichern mit dem Windows-Editor
Ist die Datei gespeichert, können Sie sie ausführen. Dazu gibt es mehrere Möglichkeiten. Scripting Spy bietet beispielsweise die Möglichkeit, die Datei direkt
aus dem Editor zu starten, indem Sie die Schaltfläche Skript ausführen anklicken.
Abbildung 1.12 Das aktuelle Skript ausführen
Nicht jeder Editor bietet jedoch diese Möglichkeit, und vor allem können Sie
so keinen Parameter an das Skript übergeben oder es mit einem bestimmten
Skripthost ausführen. Wenn Sie nicht auf die Möglichkeiten Ihres Editors
beschränkt sein möchten, können Sie wie folgt verfahren.
1.4.5
Ein Skript per Kontextmenü oder Doppelklick ausführen
Am einfachsten lässt sich ein Skript per Doppelklick auf die Skriptdatei starten.
Dazu öffnen Sie das Verzeichnis, in dem sich die Datei befindet, einfach im
Explorer oder Arbeitsplatz und klicken doppelt mit der Maus darauf. Sie wird
dann standardmäßig mit dem Skripthost WScript.exe ausgeführt, der Ausgaben beispielsweise in Dialogfeldern ausgibt. Dies lässt sich jedoch ändern.
Alternativ können Sie auch CScript.exe verwenden. Dabei handelt es sich um
die Kommandozeilenversion. Ein- und Ausgaben erfolgen daher in der Kom-
Das erste Skript erstellen und starten
29
mandozeile des Betriebssystems im DOS-Fenster beziehungsweise in der Eingabeaufforderung. Wenn Sie nicht generell alle Skripte mit CScript.exe ausführen möchten, sollten Sie den Standard-Skripthost nicht ändern. Statt dessen
können Sie einzelne Skripte wahlweise mit dem einen oder anderen Host ausführen, indem Sie die Kontextmenüeinträge einer Skriptdatei verwenden.
Klicken Sie auf Öffnen, wird das Skript mit dem Standard-Skripthost (in der
Regel WScript.exe) ausgeführt. Es passiert also das Gleiche wie bei einem Doppelklick auf die Datei. Alternativ können Sie über den Eintrag Mit Konsole öffnen das Skript zur Ausführung an den Host CScript.exe übergeben. Falls
CScript.exe der Standard-Skripthost ist, können Sie das Skript mit dem Eintrag
Öffnen mit Eingabeaufforderung in der Kommandozeile ausführen. Der Eintrag ist nun aber Standardeintrag des Kontextmenüs und steht ganz oben. Mit
dem Eintrag Öffnen, der weiter unten steht, führen Sie das Skript dann mit
Wscript.exe aus.
Abbildung 1.13 Ein Skript über das Kontextmenü starten
1.4.6 Skripte auf Kommandozeilenebene starten
Alternativ können Sie Skripte auch per Kommandozeile starten. Entweder wählen Sie dazu Start • Ausführen aus dem Startmenü von Windows aus und
geben dann den entsprechenden Befehl ein. Das Fenster schließen Sie dann mit
OK. Oder Sie öffnen die Kommandozeile von Windows und führen dort den
30
Einführung
1
2
Befehl aus. Geben Sie ihn dazu am Prompt ein und schließen Sie ihn mit (¢)
ab. In beiden Fällen ist der Befehl der gleiche. Er hat folgende Syntax:
3
Host Skriptname [Optionen][Skriptparameter]
4
Als Host geben Sie WScript.exe oder CScript.exe an, je nachdem, mit welchem
Skripthost Sie das Skript ausführen möchten. Danach geben Sie den Namen des
Skriptes einschließlich Pfad an. Der Pfad muss aber nur angegeben werden,
wenn sich das Skript nicht im aktuellen Verzeichnis befindet. Optional können
Parameter an das Skript übergeben werden, die dann hinter dem Skriptnamen
folgen. Mit Hilfe von Optionen können Sie die Ausführung von Skripten steuern und den WSH einstellen. Wenn Sie also das Skript HalloWelt.vbs mit
CScript.exe ausführen möchten, geben Sie ein:
5
6
7
8
cscript.exe e:\GAL_WSH\Bsp\K01\Hallowelt.vbs
9
Den Pfad zum Skript müssen Sie natürlich an Ihre Verzeichnisstruktur anpassen.
1.5
Optionen zur Konfiguration einsetzen
Wenn Sie Skripte in der Kommandozeile ausführen, haben Sie die Möglichkeit,
verschiedene Optionen für die Ausführung zu setzen. Die komplette Liste der
Optionen finden Sie in der folgenden Tabelle. Wichtig sind davon vor allem die
Optionen //D und //X, die Ihnen die Fehlersuche erleichtern. Mit der Option
//D schalten Sie das aktive Debuggen ein. Das heißt, das Skript wird im SkriptDebugger ausgeführt, falls ein Fehler auftritt. Mit der Option //X können Sie
explizit festlegen, dass das Skript im Debugger ausgeführt werden soll, auch
wenn kein Fehler auftritt.
Ein Debugger ist ein Programm, das bei der Fehlersuche im Quellcode hilft.
Damit ist es möglich, den Code Schritt für Schritt auszuführen und aktuelle
Werte von Variablen zu ermitteln. WSH-Skripte können Sie dem MicrosoftSkript-Debugger debuggen. Er ist auf den meisten Rechnern schon vorhanden.
Wenn er nicht verfügbar ist, können Sie ihn von der Skripting-Webseite
herunterladen: www.microsoft.com/germany/scripting
Option
Beschreibung
//B
Batch-Modus: zeigt keine Skriptfehler und Aufforderungen an
//D
Aktiviert aktives Debuggen
//H:CScript
Ändert den Standard-Skripthost auf CScript.exe
Tabelle 1.2 Verfügbare Optionen zur Konfiguration des WSH
Optionen zur Konfiguration einsetzen
31
Option
Beschreibung
//H:WScript
Ändert den Standard-Skripthost auf WScript.exe
//I
Interaktiver Modus (Standard; Gegenteil von //B)
//Job:xxxx
Führt einen WSF-Auftrag aus. Näheres dazu finden Sie in Kapitel 7, Quellcode wieder verwenden.
//Logo
Zeigt das Logo an (Standard) – Gegenteil von //Nologo
//Nologo
Zeigt kein Logo an: Bei Ausführung wird kein Banner angezeigt.
//S
Speichert die aktuellen Befehlszeilenoptionen für den aktuellen Benutzer.
//T:nn
Timeout in Sekunden: maximale Zeit, die ein Skript laufen darf. Die Zeit
in Sekunden geben Sie anstelle von nn an.
//X
Führt das Skript im Debugger aus
//U
Verwendet Unicode für umgeleitete Eingabe-/Ausgabe-Vorgänge von der
Konsole aus. Gilt nur für Windows 2000 und höher sowie für
Windows NT.
Tabelle 1.2 Verfügbare Optionen zur Konfiguration des WSH (Forts.)
Alle Optionen bis auf //H beziehen sich nur auf das auszuführende Skript und
werden daher anschließend nicht auch für andere Skripte verwendet. Sie können aber mit Hilfe der Option //S dafür sorgen, dass die gewählten Einstellungen immer verwendet werden, wenn Sie erneut ein Skript ausführen. Die Einstellungen werden dann nämlich für den aktuell angemeldeten Benutzer
gespeichert. Möchten Sie beispielsweise alle Skripte mit aktivem Debuggen
ausführen, geben Sie einmalig bei einem Skript Ihrer Wahl //D //S an.
wscript.exe e:\GAL_WSH\Bsp\K01\hallowelt.vbs //D //S
Die Option //D wird dann für den aktuellen Benutzer gespeichert und fortan
verwendet. Unter Windows 98/ME muss jedoch Windows so eingerichtet sein,
dass eine Benutzeranmeldung beim Start von Windows erforderlich ist.
1.6
Skripte mit WSH-Dateien konfigurieren
Bestimmte Einstellungen können Sie aber auch einem ganz spezifischen Skript
zuweisen, indem Sie für das Skript eine WSH-Datei erstellen. Diese wird automatisch im gleichen Verzeichnis wie die Skriptdatei gespeichert und hat auch
den gleichen Namen. Nur die Dateinamenserweiterung weicht ab, sie lautet
zwingend .WSH.
Die WSH-Datei ist ähnlich wie eine INI-Datei für Anwendungen eine einfache
Textdatei, die die Einstellungen definiert. Sie brauchen sie allerdings nicht
32
Einführung
1
2
mühsam mit einem Editor zu erstellen, sondern können dazu ein Dialogfeld
nutzen. Rufen Sie einfach im Kontextmenü der Skriptdatei, die Sie konfigurieren möchten, den Eintrag Eigenschaften auf und aktivieren Sie dann die Registerkarte Skript. Dort können Sie alle Einstellungen vornehmen und diese mit
OK speichern. Sehr viele Einstellungen sind das allerdings nicht. Mit dem Kontrollkästchen Skript nach folgender Anzahl von Sekunden anhalten, können
Sie festlegen, dass für die Ausführung des Skriptes nur eine begrenzte Zeit zur
Verfügung steht. Diese geben Sie durch Auswahl der Anzahl Sekunden im Feld
Sekunden an. Nach der definierten Zeitspanne wird das Skript abgebrochen,
wenn es dann immer noch nicht beendet ist. Die zweite Einstellung betrifft die
Ausführung des Skriptes in der Kommandozeile von Windows. Wird es mit
CScript.exe ausgeführt, können Sie wahlweise das WSH-Logo anzeigen lassen,
das die Versionsnummer des WSH anzeigt, oder es unterdrücken. Um es zu
unterdrücken, deaktivieren Sie das Kontrollkästchen Logo anzeigen, wenn das
Skript in der Befehlskonsole ausgeführt wurde.
3
4
5
6
7
8
9
Wenn Sie Einstellungen festgelegt haben, die von den Standardeinstellungen
abweichen, wird die WSH-Datei automatisch erstellt, wenn Sie Übernehmen
oder OK anklicken. Wenn Sie die Standardeinstellungen wiederherstellen
möchten, klicken Sie dazu einfach die Schaltfläche Auf Standard zurücksetzen
des Dialogfelds an. Alternativ können Sie auch im Arbeitsplatz oder Explorer
die WSH-Datei löschen.
Abbildung 1.14 Erstellen einer WSH-Datei über den Eigenschaften-Dialog der Skriptdatei
Skripte mit WSH-Dateien konfigurieren
33
Damit die Einstellungen in der WSH-Datei berücksichtigt werden, dürfen Sie
nun aber nicht mehr die Skriptdatei ausführen, sondern müssen die WSH-Datei
starten. Das funktioniert genauso wie der Start der Skriptdatei, entweder per
Doppelklick oder über das Kontextmenü der WSH-Datei. Das Kontextmenü der
WSH-Datei berücksichtigt aber nicht die Einstellungen bezüglich des StandardSkripthosts. Mit Öffnen wird immer Wscript.exe verwendet und mit Mit Konsole öffnen der Host CScript.exe. Der Eintrag Öffnen ist immer der Standardeintrag des Kontextmenüs. Führen Sie wie bisher die Skriptdatei aus, werden die
Einstellungen nicht berücksichtigt, das Skript ist aber dennoch funktionsfähig.
[ScriptFile]
Path=E:\GAL_WSH\CD\Bsp\K01\hallowelt.vbs
[Options]
Timeout=10
DisplayLogo=1
Hinweis Die WSH-Datei ist mit der Skriptdatei verknüpft. Innerhalb der
WSH-Datei, die Sie beispielsweise im Windows-Editor wie eine normale
Textdatei öffnen können, stehen der Pfad und Name der Skriptdatei. Wenn
Sie also die Skriptdatei nachträglich umbenennen oder in ein anderes Verzeichnis verschieben, müssen Sie die WSH-Datei manuell anpassen oder neu
erzeugen, sonst kann die Skriptdatei nicht ausgeführt werden oder es wird
unter Umständen die falsche Version des Skriptes ausgeführt. Bei manueller
Anpassung der Datei geben Sie einfach den korrekten Dateinamen und Pfad
der Skriptdatei hinter Path= in der Datei an. Den Inhalt einer WSH-Datei
zeigt das folgende Listing.
Wenn Sie die WSH-Datei mit einem Editor bearbeiten möchten, sollten Sie
deren Dateinamenserweiterung vorübergehend in .txt umbenennen. Dann
können Sie die Datei einfach per Doppelklick öffnen. Ansonsten können Sie
Anpassungen jedoch auch vornehmen, indem Sie erneut den EigenschaftenDialog des Skriptes aufrufen.
1.7
Syntaxbeschreibungen verstehen
Die bis hierhin verwendeten Befehle waren noch recht einfach. In den nachfolgenden Kapiteln begegnen Ihnen jedoch verstärkt Befehle, die etwas komplexer aufgebaut sind. Für diese Anweisungen wird dann auch eine Syntaxbeschreibung genannt, die Sie im Anfang finden. Wenn Sie einmal die Bedeutung
der einzelnen Schreibweisen kennen, können Sie so durch einen Blick in den
Anhang die notwendigen Informationen ermitteln.
34
Einführung
1
2
Eine Syntaxbeschreibung besteht im Wesentlichen aus
3
왘 kursiven Bestandteilen, das sind Elemente, die Sie durch eigene Werte erset-
zen. Diese Werte können konstante Zahlen oder Zeichenketten oder Variablen sein.
4
왘 Teilen mit gerader Schrift. Dabei handelt es sich um die Befehlsnamen, die
5
unveränderbar sind, oder um vordefinierte Konstanten, die Sie nutzen können.
6
왘 Teilen in eckigen Klammern. Hierbei handelt es sich um optionale Angaben,
die Sie auch weglassen können, wenn Sie sie nicht benötigen
7
왘 Elementen, die durch einen senkrechten Strich getrennt sind. Dies sind alter-
native Werte, meist Konstanten, die Sie an dieser Stelle verwenden können.
8
Werden Parameter in runde Klammern eingefasst, sind diese an der angegebenen Stelle einzugeben.
9
Zur Verdeutlichung soll die Syntaxbeschreibung der Split-Funktion dienen.
Sie enthält alle folgenden Elemente:
Split(Zeichenkette[, Trennzeichen[, Anzahl[, vbBinaryCompare|
vbTextCompare]]])
An die Funktion können Sie bis zu vier Werte übergeben. Der erste, Zeichenkette, ist Pflicht. Sie ersetzen ihn (weil kursiv gesetzt) durch einen beliebigen
geeigneten Wert. Der zweite, Trennzeichen, ist optional, da er in eckigen
Klammern angegeben wird. Aber auch diesen ersetzen Sie, wenn Sie ihn angeben möchten, durch einen beliebigen geeigneten Wert. Die Tatsache, dass vor
dem Namen des Wertes ein Komma innerhalb der eckigen Klammern steht, hat
natürlich auch eine Bedeutung: Geben Sie den optionalen Wert an, müssen Sie
vor ihm auch das Komma angeben. Lassen Sie ihn weg, entfällt auch das
Komma.
Für den Fall, dass Sie den zweiten Wert (Parameter genannt) angeben, können
Sie auch den dritten, Anzahl angeben. Lassen Sie den zweiten Parameter weg,
können Sie auch den dritten nicht angeben. Das wird dadurch kenntlich
gemacht, dass sich die eckige Klammer für den dritten Parameter innerhalb der
eckigen Klammer befindet, die den zweiten Parameter umgibt. Könnten Sie den
dritten Parameter auch dann angeben, wenn Sie den zweiten weglassen, sähe
die Syntax nämlich wie folgt aus:
Split(Zeichenkette[, Trennzeichen][, Anzahl][, vbBinaryCompare|
vbTextCompare])
Syntaxbeschreibungen verstehen
35
Der letzte Parameter der Funktion erwartet einen vorgegebenen Wert, kann
also nicht frei festgelegt werden. Die beiden möglichen Werte werden in eckige
Klammern eingefasst, weil der Parameter ebenfalls optional ist. Sie können also
entweder den Wert vbBinaryCompare oder den Wert vbTextCompare verwenden.
36
Einführung
1
2
9 Sicherheit
3
4
9.1 Allgemeine Sicherheitstipps
und -ratschläge ............................................ 319
5
6
9.2 Die Sicherheit mit Virenscannern erhöhen .. 329
7
9.3 Das Sicherheitskonzept des WSH 5.6 ......... 331
8
9
A
B
1
Einführung
2
Sprachgrundlagen von VBScript
3
Objektorientierte Programmierung mit dem Windows Script Host
4
Arbeiten mit dem Dateisystem
5
Zugreifen auf die Registry
6
Anwendungen steuern
7
Quellcode wieder verwenden
8
Benutzeroberflächen erstellen
9
Sicherheit
A
Referenz
B
Glossar
1
2
9
Sicherheit
3
Bekannt geworden ist der Windows Script Host im Wesentlichen durch
Melissa! Dieser Virus hat fast 80 Prozent aller Unternehmen und über
70 Prozent aller privaten PCs infiziert. Der Grund lag einfach darin,
dass er sich die Fähigkeiten des Windows Script Host zunutze gemacht
und auch andere Anwendungen wie Outlook für seine Zwecke missbraucht hat. Wie Sie sich vor solchen Attacken schützen und sicherstellen, dass Ihre Skripte auch von vorsichtigen Anwendern ausgeführt
werden können, zeigt das vorliegende Kapitel.
4
5
6
7
8
Das Thema »Sicherheit« ist aus mehreren Gründen für alle Skriptprogrammierer relevant. Zum Beispiel deshalb, weil nach Melissa sowohl die Software-Hersteller an der Sicherheit gearbeitet haben als auch viele Anwender vorsichtig
geworden sind und sich Virenscanner zugelegt haben. Beides kann dazu führen, dass Ihre Skripte nicht mehr ausgeführt werden können oder nicht mehr
fehlerfrei funktionieren. Das heißt, als Entwickler sollten Sie sehr genau wissen, unter welchen Voraussetzungen Ihre Skripte überhaupt ausgeführt werden
können. Zudem kommt bei vielen Entwicklern über kurz oder lang die Frage
auf, wie sie ihren mühsam erstellten Code vor neugierigen Blicken schützen
können.
9
Aber auch als Anwender dürfte es Sie natürlich interessieren, wie Sie Ihren
Rechner trotz WSH vor Viren schützen können, ohne dass Sie dazu auf eigene
Skripte verzichten müssen. Wenn Sie Administrator eines kleineren oder größeren Netzwerks sind, haben Sie natürlich ein ganz besonderes Interesse daran,
dass nur die von Ihnen abgesegneten Skripte ausgeführt werden können, nicht
aber Viren und Würmer, die dann Schaden anrichten. Welche Möglichkeiten es
dafür gibt, hängt aber entscheidend von der WSH-Version ab. Der WSH 5.6 bietet die Möglichkeit Skripte zu verschlüsseln, zu signieren und die Ausführung
von Skripten auf signierte Skripte zu beschränken.
9.1
Allgemeine Sicherheitstipps und -ratschläge
Zunächst einmal muss man zugeben, dass die WSH-Kritiker Recht haben mit
dem Vorwurf, dass der WSH eine Sicherheitslücke darstellt. Erst der WSH
macht es schließlich möglich, Programme auch unsichtbar zu steuern. Nur so
konnte Melissa sich unbemerkt in E-Mails über Outlook verschicken. Dennoch
kann ein Rechner auch mit installiertem WSH weitgehend vor Viren und dem
damit verbundenen Datenverlust geschützt werden. Der zweite Unsicherheitsfaktor ist nämlich immer noch der Benutzer.
Sicherheit
319
Und der Benutzer hat es in der Hand, sich entsprechend zu verhalten. Generell
sollten Sie folgende Regeln beachten, wenn Sie bei installiertem WSH ohne
Virenscanner mit Ihrem Rechner arbeiten. Vorausgesetzt natürlich, Ihnen liegt
etwas an Ihren Daten.
왘 Wenn Sie E-Mails mit Outlook 2000 empfangen oder versenden, installieren
Sie das Service Pack 1. Es unterbindet Anhänge, die potenziell Viren enthalten könnten. Das sind neben Access-Datenbanken auch VBScript-Dateien,
JScript-Dateien und EXE-Dateien. Solche Anhänge in eingehenden E-Mails
werden nicht mehr angezeigt und können so auch nicht ausgeführt werden.
왘 Nutzen Sie Outlook Express für E-Mails und Newsgroups, sollten Sie die
Sicherheitseinstellungen für Outlook Express auf das Maximum heraufsetzen. Damit können Sie verhindern, dass bereits in der HTML-Vorschau der
Mails Plug-ins und HTML- und Skript-Code ausgeführt wird, der Viren und
Würmern Tür und Tor öffnet.
왘 Führen Sie Anhänge in E-Mails, die von fremden Leuten kommen oder die
von Bekannten kommen, von denen Sie die Anhänge aber nicht erwarten,
niemals einfach aus. Bedenklich sind nicht nur Skriptdateien, sondern natürlich auch Office-Dokumente, denn auch sie können WSH-Objekte in VBA
ansprechen. Denkbar wäre sogar, dass eine »harmlose« Word-Datei ein
Skript erstellt, das Ihre Festplatte formatiert und das dann per Autostart-Eintrag beim nächsten Systemstart ausgeführt wird. Sie sollten also bei jeglichen
Anhängen, vor allem natürlich bei EXE-Dateien, ein gesundes Misstrauen an
den Tag legen.
왘 Blenden Sie die Dateinamenserweiterungen für bekannte Dateitypen ein.
Nur dann können Sie nämlich eine JPEG-Datei auch sicher von einer Skriptdatei unterscheiden, die beispielsweise meinscript.jpg.vbs heißt. Mit ausgeblendeten Dateitypen würden Sie nämlich meinscript.jpg angezeigt
bekommen. Ein Doppelklick auf die Datei öffnet dann nicht eine Grafikdatei, sondern startet das Skript, das großen Schaden anrichten könnte.
왘 Stellen Sie für den Internet Explorer die Sicherheit auch für die lokale und
Intranetzone niemals auf ganz niedrig. Viren und Würmer könnten sich auch
als HTML-Datei einschleichen, die Sie dann vielleicht von der lokalen Festplatte öffnen und damit die Sicherheitseinstellungen für das Internet umgehen.
왘 Wenn Sie Skriptdateien von anderen bekommen oder sich als Beispiele aus
dem Internet herunterladen, sehen Sie sich die Skripte erst an, bevor Sie sie
ausführen. Nicht immer verbirgt sich hinter der Datei auch der angekündigte Inhalt.
320
Sicherheit
1
2
왘 Falls Sie Windows NT, Windows 2000 oder Windows XP verwenden, nut-
3
zen Sie deren Möglichkeit Benutzer und Benutzerrechte zu verwalten.
Skripte werden immer mit den Rechten des aktuell angemeldeten Benutzers
ausgeführt. Wenn der keine Rechte zur Manipulation der Registry hat, kann
ein bösartiges Skript hier keinen Schaden anrichten. Gleiches gilt natürlich
für Dateien, auf die ein Benutzer oder eine Benutzergruppe keinen Zugriff
hat. Auch die sind vor Zugriffen per Skript geschützt.
4
5
6
Wenn Sie diese Ratschläge beherzigen, kann Ihnen kaum etwas passieren.
Wichtig ist immer: Erst denken, dann klicken. Allerdings sind für einige der
Hinweise Änderungen an der Standardkonfiguration von Windows erforderlich. Wie Sie diese Änderungen durchführen, wird daher nachfolgend beschrieben.
9.1.1
7
8
Outlook- und Outlook-Express-Sicherheitseinstellungen
heraufsetzen
9
Die meisten Viren und Würmer, die sich des WSH bedienen, schleichen sich
über Anhänge von E-Mails oder in HTML-E-Mails ein und nutzen dazu die
laschen Sicherheitseinstellungen von Outlook und Outlook Express. Gerade das
lässt sich jedoch problemlos ändern, nur wissen viele Anwender leider nicht,
dass es geht und dass es überhaupt ein Sicherheitsrisiko gibt.
Wenn Sie Outlook 2000 oder höher verwenden, gehen Sie wie folgt vor, um
die Sicherheitseinstellungen zu kontrollieren und bei Bedarf zu korrigieren:
왘 Starten Sie Outlook und wählen Sie dann Extras • Optionen aus dem Menü
aus.
왘 Aktivieren Sie die Registerkarte Sicherheit.
왘 In der Mitte des Dialogs finden Sie eine Gruppe Inhalt sichern. Hier sollten
Sie sicherstellen, dass im Listenfeld Zone der Eintrag Eingeschränkte Sites
ausgewählt ist. Dies ist die Zone mit der höchsten Sicherheitsstufe.
Hinweis Wenn Sie möchten, können Sie die Zone nun noch anpassen
beziehungsweise die Einstellungen kontrollieren. Klicken Sie dazu auf
Zoneneinstellungen und bestätigen Sie die Warnung mit OK. In dem
eingeblendeten Dialog klicken Sie dann auf Zone anpassen. Im Normalfall sind hier aber keine Änderungen mehr notwendig. Diese Zone ist
wirklich sicher.
왘 Schließen Sie den Dialog mit OK oder klicken Sie auf Übernehmen um
geänderte Einstellungen zu speichern.
Allgemeine Sicherheitstipps und -ratschläge
321
Abbildung 9.1 Sicherheitszone einstellen
Falls Sie Outlook Express nutzen, funktioniert die Anpassung ganz ähnlich.
왘 Starten Sie Outlook Express und wählen Sie Extras • Optionen aus.
왘 Aktivieren Sie auch hier die Registerkarte Sicherheit.
왘 Ganz oben im Dialogfeld unter Virenschutz finden Sie die Option Zone für
eingeschränkte Sites (sicherer). Aktivieren Sie diese, wenn sie nicht aktiviert ist.
Hinweis Abhängig von Ihrer Outlook-Express-Version könnte der Dialog auch etwas anders aussehen. Unter Umständen müssen Sie die Zone
wie in Outlook aus einem Kombinationslistenfeld auswählen. Wichtig ist
nur, dass Sie die Zone für eingeschränkte Sites auswählen.
왘 Stellen Sie sicher, dass das Kontrollkästchen Warnung anzeigen, wenn
andere Anwendungen versuchen E-Mail unter meinem Namen zu versenden aktiviert ist.
왘 Wenn Sie noch mehr Sicherheit möchten, können Sie auch das zweite Kon-
trollkästchen Speichern oder öffnen von Anlagen, die möglicherweise
Viren enhalten, nicht zulassen aktiveren. Damit verringern Sie das Risiko,
versehentlich gefährliche Anhänge zu öffnen.
Hinweis Ob es diese beiden Kontrollkästchen gibt, hängt von der Outlook-Express-Version ab.
322
Sicherheit
1
2
3
4
5
6
7
8
9
Abbildung 9.2 Die Sicherheitseinstellungen für Outlook Express 6
왘 Klicken Sie auf OK oder Übernehmen, um die Einstellungen zu speichern.
Tipp In Outlook Express können Sie die Einstellungen für die Zone
nicht einsehen und ändern. Möchten Sie die Einstellungen kontrollieren,
geht das nur über den Internet Explorer. Outlook und Outlook Express
verwenden nämlich die Sicherheitszonen des Internet Explorers.
9.1.2
Sicherheitseinstellungen des Internet Explorers einstellen
Die Sicherheitseinstellungen des Internet Explorers sind relevant, wenn es
darum geht, Ihren Rechner vor Viren und Würmern zu schützen, die sich als
Skript oder Link auf einer Website verbergen. Außerdem sind die Einstellungen
für die Sicherheitszonen auch für Outlook und Outlook Express von Bedeutung. Um den Internet Explorer einzustellen, gehen Sie wie folgt vor:
왘 Starten Sie den Internet Explorer.
왘 Wählen Sie für den Internet Explorer 5 und höher den Menüeintrag Extras •
Internetoptionen aus. In früheren Internet-Explorer-Versionen finden Sie
die Einstellungen im Menü Bearbeiten.
왘 Aktivieren Sie die Registerkarte Sicherheit. Ganz oben im Dialogfeld kön-
nen Sie nun die Zonen markieren, deren Einstellungen Sie festlegen möchten. Wichtig sind vor allem die Zonen Internet und Lokales Intranet. Letztere wird verwendet, wenn Sie Dateien von Netzwerklaufwerken und Freigaben ausführen.
Allgemeine Sicherheitstipps und -ratschläge
323
Tipp Aus Sicherheitsgründen sollten Sie jedoch bei Verwendung des
Internet Explorers 4 auf die Version 5.5 oder höher updaten, da in der
Version 4.0 noch kein Skripting deaktiviert werden kann und damit ein
Schutz vor bösartigem Code, der die WSH-Objekte verwendet, nicht möglich ist.
Tipp Die Zone Lokales Intranet wird nicht verwendet, wenn Sie
Dateien von der lokalen Festplatte ausführen. Leider können Sie für die
Zone Arbeitsplatz, die verwendet wird, wenn Sie Dateien vom lokalen
Laufwerk ausführen, keine Einstellungen festlegen. Sie können den Internet Explorer aber austricksen. Geben Sie ein lokales Laufwerk frei, verbinden Sie es mit einem Laufwerksbuchstaben, beispielsweise X:. Sie können dann die Dateien von Laufwerk X aus ausführen oder den Freigabenamen angeben, wenn Sie eine Datei ausführen.
Abbildung 9.3 Wenn Sie eine Datei von einer Freigabe aufrufen, wird die Zone Lokales
Intranet verwendet, auch wenn die Freigabe sich auf einem lokalen Laufwerk befindet
왘 Markieren Sie zunächst das Symbol Internet und klicken Sie dann auf Stufe
anpassen.
Abbildung 9.4 Sicherheitszonen für Internet und Lokales Intranet anpassen
324
Sicherheit
1
2
왘 Wählen Sie nun aus der Pulldown-Liste zurücksetzen zu den Eintrag Mittel
3
aus.
4
5
6
7
8
9
Abbildung 9.5 Auswählen der Sicherheitseinstellungen
Hinweis Falls Sie es noch sicherer haben möchten, können Sie auch
Hoch auswählen. Dann werden jedoch auch keine Plug-ins wie Flashund SVG-Viewer mehr ausgeführt.
왘 Klicken Sie auf OK, um die Einstellungen zu übernehmen und zum vorheri-
gen Dialog zurückzukehren.
왘 Markieren Sie nun das Symbol Lokales Intranet und verfahren Sie damit
genauso. Auch dafür sollten Sie mindestens die Stufe Mittel auswählen.
왘 Schließen Sie dann den Dialog Internetoptionen mit OK.
9.1.3
Dateinamenserweiterungen einblenden
Wichtig ist vor allem, dass Sie eine Datei korrekt erkennen, bevor Sie sie ausführen. Standardmäßig zeigt Windows nämlich keine Dateinamenserweiterungen für registrierte Dateitypen an. Als Dateinamenserweiterung wird immer
der letzte Teil des Dateinamens nach dem Punkt verwendet. Allerdings hindert
Windows Sie nicht daran zwei Erweiterungen zu vergeben. Sie können eine
JPG-Datei also durchaus Bild.txt.jpg nennen. Windows wird dann bei ausgeblendeten Dateinamenserweiterungen Bild.txt im Arbeitsplatz anzeigen. Klicken Sie aber doppelt darauf, öffnet sich ein Grafikprogramm und zeigt die Grafik an, vorausgesetzt, die Datei enthält Grafikdaten.
Allgemeine Sicherheitstipps und -ratschläge
325
Dieses Verhalten von Windows haben sich Virenprogrammierer zunutze
gemacht und versenden ihre Viren und Würmer (oder 0190-Dialer) getarnt als
JPG-Dateien, HTML-Dateien oder AVI-Dateien. Dahinter verbergen sich jedoch
in Wirklichkeit Skriptdateien oder EXE-Dateien. Outlook Express und Outlook
2003 zeigen zwar automatisch die Dateinamenserweiterungen in den Anlagen
an, unabhängig von den Windowseinstellungen, frühere Versionen machen das
aber nicht. Das Problem wird noch größer, wenn sich die Dateien erst einmal
auf der Festplatte befinden, beispielsweise nach einem Download oder nachdem Sie sie aus der E-Mail gespeichert haben.
Wenn Sie beispielsweise eine Grafikdatei testbild.bmp und eine Skriptdatei
testbild.bmp.vbs erstellen und diese Dateien mit den ausgeblendeten Dateinamenserweiterungen im Arbeitsplatz ansehen, sieht das wie in Abbildung 9.6
aus. Der gut gewählte Name mit dem Text »bild« lässt den Schluss zu, beides
seien Bilder. Das untere ist jedoch die VBScript-Datei. Erkennbar ist das für den
unbedarften Anwender nur daran, dass sich die Symbole unterscheiden. Viele
Benutzer stutzen dann aber leider nicht. Sie gehen davon aus, dass Windows so
viele Symbole hat, das wird schon richtig sein. Ein Doppelklick auf die untere
Datei würde das Skript ausführen und nicht die Grafik öffnen. Ein bösartiges
Skript könnte damit schon die Festplatte formatieren.
Abbildung 9.6 Eine Grafikdatei und eine getarnte Skriptdatei im Arbeitsplatz
Eine bessere Chance, solche Tretminen zu enttarnen, haben Sie auf jeden Fall,
wenn Sie sich alle Dateinamenserweiterungen anzeigen lassen. Dazu gehen Sie
wie folgt vor:
왘 Öffnen Sie ein Verzeichnis Ihrer Wahl im Arbeitsplatz.
왘 Wählen Sie Extras • Ordneroptionen aus.
왘 Klicken Sie auf die Registerkarte Ansicht.
왘 Deaktivieren Sie das Kontrollkästchen Erweiterungen bei bekannten
Dateitypen ausblenden.
326
Sicherheit
1
2
3
4
5
6
7
8
9
Abbildung 9.7 Dateinamenserweiterungen einblenden
왘 Klicken Sie auf die Schaltfläche Für alle übernehmen. Sie weisen damit die
Einstellungen nicht nur dem gerade geöffneten Ordner, sondern allen Ordnern zu.
왘 Schließen Sie den Dialog mit OK.
Abbildung 9.8 So lässt sich sehr viel einfacher feststellen, was wahre Grafiken und was
getarnte Skripte sind.
9.1.4
Benutzer einrichten und verwalten
Benutzer einzurichten und deren Rechte zu bestimmen ist eine sehr einfache
Methode, den Rechner sicherer zu machen. Über die Benutzerrechte legen Sie
genau fest, was ein Benutzer darf und was nicht, und dadurch auch die Möglichkeiten eines Skriptes. Das nützt aber nur etwas, wenn Sie sich hinterher
auch als Benutzer mit eingeschränkten Rechten und nicht als Administrator am
Allgemeine Sicherheitstipps und -ratschläge
327
System anmelden. Zudem setzt dies Windows NT, Windows 2000 oder Windows XP als Betriebssystem voraus.
Tipp Sinnvoll ist die Einrichtung eines Benutzers mit eingeschränkten
Rechten vor allem dann, wenn sich wichtige Daten auf Ihrem Rechner befinden und Sie den Rechner mit anderen Benutzern teilen müssen, denen Sie
obige Verhaltensregeln nicht zumuten können oder die sich daran nicht halten. Sie stellen mit einem eingeschränkten Benutzer dann außerdem sicher,
dass das System nicht durch fehlerhafte Einstellungen ruiniert wird.
Die Vorgehensweise zur Einrichtung von Benutzern hängt davon ab, welche
Windows-Version Sie verwenden und welche Netzwerkeinstellungen vorliegen. Nutzen Sie einen Domänenserver und melden sich an die Windows-2000oder NT-Domäne an, werden die Benutzer auf dem Server verwaltet. In diesem
Fall müssen Sie auch dort die Benutzerrechte festlegen beziehungsweise vom
Server-Administrator festlegen lassen. Verfügen Sie nicht über ein Netzwerk
oder melden sich zumindest nicht an eine Domäne an, verwalten Sie die Benutzer auf Ihrem lokalen Rechner. Für einen solchen Fall gilt die folgende Beschreibung. Hier wird Windows XP Professional eingesetzt, die sichere Anmeldung ist
aktiviert. Für Windows NT und Windows 2000 können sich daher kleinere
Abweichungen ergeben. Bei aktivierter schneller Anmeldung in Windows XP
왘 starten Sie die Benutzerverwaltung von Windows. Bei Windows XP wählen
Sie dazu Start • Alle Programme • Systemsteuerung aus und klicken doppelt auf Benutzerkonten.
왘 Aktivieren Sie die Registerkarte Erweitert und klicken dort die Schaltfläche
Erweitert an.
왘 Es erscheint nun ein Dialogfeld Lokale Benutzer und Gruppen, in dem alle
aktuell eingerichteten Benutzer aufgeführt werden. Hier können Sie einen
neuen Benutzer hinzufügen, indem Sie zunächst den Ordner Benutzer
anklicken. In der rechten Dialoghälfte werden dann alle Benutzer aufgeführt, die bereits eingerichtet sind.
왘 Wählen Sie nun Aktion • Neuer Benutzer aus. Es erscheint ein Dialogfeld,
in das Sie die Benutzerdaten eingeben können. Der Benutzername ist dabei
der Name, den Sie für die Anmeldung eingeben. Im Feld Vollständiger
Name können Sie auch Titel, Vorname etc. angeben. Standardmäßig ist das
Kontrollkästchen Benutzer muss Kennwort bei der nächsten Anmeldung
ändern aktiviert. Das heißt, dass Sie (oder der Benutzer des Kontos) bei der
ersten Anmeldung aufgefordert werden, das Kennwort festzulegen. Wenn
Sie die Option aktiviert lassen, gilt das festgelegte Kennwort nur für die erste
Anmeldung. Deaktivieren Sie diese Option, haben Sie jedoch die Möglich-
328
Sicherheit
1
2
keit, das Kennwort für unbegrenzte Zeit festzulegen, indem Sie das Kontrollkästchen Kennwort läuft nie ab aktivieren. Klicken Sie anschließend auf
Erstellen (siehe Abbildung 9.9).
3
4
Hinweis Um Benutzer einzurichten oder Benutzerrechte zu verändern,
benötigen Sie Administratorrechte, müssen sich also als Administrator
anmelden.
5
6
Der Benutzer wird nun erstellt und automatisch der Benutzergruppe Benutzer
zugeordnet. Das ist zwar eine gute Einstellung, noch sicherer können Sie es
aber machen, indem Sie eine andere Gruppenzuordnung verwenden. Sie können den Dialog nun mit Datei • Beenden schließen.
7
8
9
Abbildung 9.9 Festlegen der Benutzereigenschaften und Erstellen des Kontos
Hinweis Der neue Benutzer bringt natürlich nur etwas, wenn Sie (oder der
spätere Benutzer des Rechners), sich auch damit anmelden. Nach einem
Neustart des Rechners oder nachdem Sie Start • Abmelden ausgewählt
haben, müssen Sie dazu den derzeit verwendeten Benutzernamen durch den
Namen des eben eingerichteten Benutzers ersetzen und im Passwort-Feld
das Kennwort für den Benutzer angeben.
9.2
Die Sicherheit mit Virenscannern erhöhen
Zusätzlich oder alternativ zu den oben beschriebenen Maßnahmen erhöhen
natürlich auch gute Virenscanner die Sicherheit. Gute, professionelle Tools prüfen nicht nur auf Viren, sondern kontrollieren auch Skriptaktionen, indem sie
immer dann Alarm schlagen, wenn gefährliche Objekte oder Methoden wie
beispielsweise das WSHShell-Objekt verwendet werden.
Die Sicherheit mit Virenscannern erhöhen
329
Egal, welchen Virenscanner Sie verwenden möchten, Sie sollten unbedingt auf
folgende Punkte achten:
왘 Der Virenscanner darf auf keinen Fall jegliche Skriptausführung unterbin-
den, denn dann können Sie Ihre WSH-Skripte nicht mehr ausführen.
왘 Er sollte Skriptdateien aber dennoch prüfen, Ihnen jedoch die Wahl überlas-
sen, wie damit zu verfahren ist.
왘 Der Virenscanner beziehungsweise die Virendefinitionsdateien des Scanners
sollten immer auf dem neuesten Stand sein, beispielsweise durch eine regelmäßige Online-Aktualisierung.
왘 Er sollte auch Zugriffe auf Dateien überwachen, die über einen Netzwerk-
rechner erfolgen.
Sehr gut ist Norton Antivirus bei der Überwachung von Skripten. Hier haben
Sie bei der Ausführung von Skripten, die gefährliche Anweisungen enthalten,
die Möglichkeit die Vorgehensweise zu bestimmen.
Abbildung 9.10 Möglichkeiten von Norton Antivirus
Wenn Sie nicht möchten, dass das Skript ausgeführt wird, wählen Sie die empfohlene Option Dieses Skript stoppen (empfohlen) aus. Dann wird das Skript
gestoppt. Falls Sie allerdings den Debugger aktiviert haben, wird er im
Anschluss gestartet.
Die Auswahl Diese Aktivität einmal zulassen ermöglicht, dass das Objekt
erstellt wird, das für den Aufruf des Virenscanners gesorgt hat. Wird es allerdings mehrfach im Skript neu erzeugt, erscheint jedes Mal wieder die Meldung
des Virenscanners.
330
Sicherheit
1
2
Bei Auswahl von Gesamtes Skript einmal zulassen wird das Skript einmal
ausgeführt. Alle Objekte werden ohne weitere Nachfrage erzeugt. Beim nächsten Mal meldet sich der Virenscanner aber wieder.
3
4
Wenn Sie sicherstellen möchten, dass das Skript nie wieder ausgeführt wird,
wählen Sie dazu Dieses Skript isolieren aus. Sollte es Ihnen allerdings versehentlich passieren, dass Sie diese Option auswählen, lässt sich das nicht wieder
rückgängig machen. Um das Skript erneut starten zu können, erzeugen Sie eine
neue, leere Skriptdatei, kopieren dann den Code der isolierten Datei in die neue
Skriptdatei und löschen anschließend die alte Datei. Die neue Datei lässt sich
dann wieder ausführen.
5
6
7
Falls die Meldungen des Virenscanners Sie stören, wenn Sie Ihre eigenen
Skripte ausführen, können Sie das Skript autorisieren, indem Sie Dieses Skript
autorisieren auswählen. Das Skript wird nachfolgend ohne weitere Meldung
des Virenscanners ausgeführt, solange Sie den Quellcode nicht verändern. Nach
einer Änderung müssen Sie das Skript erneut autorisieren.
9.3
8
9
Das Sicherheitskonzept des WSH 5.6
Das Sicherheitskonzept des WSH soll dazu dienen, Ihren Rechner vor Viren und
Würmern zu schützen, ohne dabei die Funktionalität des WSH einzuschränken.
Damit das Sicherheitskonzept in Kraft tritt, müssen Sie es aber explizit aktivieren und Ihre Skripte entsprechend bearbeiten. Die Hauptbestandteile des
Sicherheitskonzepts sind:
왘 Signierung von Skripten
왘 Verifizierung von Skripten
왘 Sperren der Ausführung unsignierter Skripte
9.3.1
Skripte signieren
Die Signierung von Skripten dient dazu, die Herkunft eines Skriptes auszuweisen. Der Benutzer kann an der Signatur erkennen, wer es erstellt und veröffentlicht hat, und so entscheiden, ob er der Quelle vertraut. Die Signatur wird am
Ende des Skriptes verschlüsselt eingefügt. Um sicherzustellen, dass ein
ursprünglich aus einer vertrauenswürdigen Quelle stammendes Skript nicht
nachträglich manipuliert wird, wird die Signatur ungültig, sobald das Skript
nachträglich verändert wird.
Tipp Eine Signatur sollten Sie immer erst dann hinzufügen, wenn das
Skript komplett fertig ist und nicht mehr verändert wird.
Das Sicherheitskonzept des WSH 5.6
331
Damit Sie eine Skriptdatei signieren können, benötigen Sie zwingend ein Zertifikat. Das können Sie entweder bei Ihrem Administrator erhalten, wenn Ihre
Firma eigene Zertifikate besitzt, oder Sie müssen sich dazu an eine öffentliche
Zertifizierungsstelle wenden.
Abbildung 9.11 So sieht ein signiertes Skript aus.
Tipp Wenn Sie nur Ihren eigenen Rechner schützen möchten und Ihre
signierten Skripte nicht weitergeben möchten, können Sie auch ein Zertifikat erstellen, das nicht öffentlich (das heißt von einer Zertifizierungsstelle
herausgegeben) ist und somit für andere Anwender nicht überprüfbar ist.
Sie können damit jedoch Ihre eigenen Skripte signieren und dann den WSH
so einstellen, dass nur signierte Skripte ausgeführt werden können. Voraussetzung ist dafür aber, dass Sie Office 2000 oder Office XP installiert haben.
Damit wird nämlich ein Tool SELFCERT.EXE installiert, mit dem Sie digitale
Zertifikate erstellen können. Suchen Sie einfach nach einem Programm dieses Namens auf Ihrem Rechner und führen Sie es per Doppelklick aus, um
ein Zertifikat zu erstellen.
Haben Sie ein Zertifikat erstellt oder von Ihrem Administrator zur Verfügung
gestellt bekommen, können Sie Ihre Skripte damit signieren. Sie müssen dazu
ein Skript erstellen, das mit Hilfe der SignFile-Methode des Signer-Objekts
ein Skript Ihrer Wahl signiert. Das Signer-Objekt erzeugen Sie ganz einfach mit
der CreateObject-Methode des WScript-Objekts aus der Klasse Scripting.Signer. Das Skript ermittelt zunächst, ob die benannten Parameter Zerti-
332
Sicherheit
1
2
fikat und Dateiname übergeben wurden. Nur wenn beide vorhanden sind, werden deren Werte in Variablen gespeichert und das Signer-Objekt erzeugt.
Probleme können allerdings auftreten, wenn die angegebene Datei nicht vorhanden ist. Sie sollten daher unbedingt prüfen, ob es die Datei gibt.
3
4
Die SignFile-Methode benötigt drei Parameter:
5
objSigner.SignFile (Dateiname, Zertifikat, Zertifikspeicher)
6
Als ersten Parameter geben Sie den vollständigen Dateinamen einschließlich
Pfad an, als zweiten den Namen des zu verwendenden Zertifikats und als letzten den Zertifikatspeicher. Darunter wird der Ordnername im Verzeichnis
Anwendungsdaten\Microsoft\SystemCertificates\ des Benutzers verstanden, in dem die Zertifikate gespeichert sind. Der Standardordnername lautet
My, auch für deutsche Windows-Versionen. In diesem Ordner werden alle Zertifikate gespeichert, die mit persönlichen Schlüsseln erstellt wurden. Darunter
fallen auch die Zertifikate, die SELFCERT.EXE erstellt.
7
8
9
'Skriptname: signieren.vbs
'Autor: Helma Spona
'Datum: 11.August 2003
'Beschreibung: signiert ein Skript
'--------- Variablen -----------Dim strZertifikat
Dim strSkriptname
Dim strZertSpeicher
Dim objSigner
Dim objFSO
'-------- Anweisungen ----------If (WScript.Arguments.Named.Exists( _
"Zertifikat")) and ( _
WScript.Arguments.Named.Exists( _
"Dateiname")) Then
Set objSigner = _
WScript.CreateObject( _
"Scripting.Signer")
Set objFSO=WScript.CreateObject(_
"Scripting.FileSystemObject")
strSkriptname = _
WScript.Arguments.Named("Dateiname")
If objFSO.FileExists(strSkriptname)= _
false then
MsgBox "Das angegebene Skript " & _
Das Sicherheitskonzept des WSH 5.6
333
"existiert nicht",vbError
WScript.Quit
End If
strZertifikat = _
WScript.Arguments.Named("Zertifikat")
strZertSpeicher="My"
objSigner.SignFile strSkriptname, _
strZertifikat, strZertSpeicher
MsgBox "Skript ist signiert!"
Else
Wscript.Quit
End If
Wenn Sie mit Hilfe dieses Skriptes ein anderes Skript signieren möchten, müssen Sie das Skript wie folgt aufrufen:
F:\GAL_WSH\CD\Bsp\K09\signieren.vbs /Zertifikat:"Helma Spona" /
Dateiname:F:\GAL_WSH\CD\Bsp\K08\HalloWelt.vbs
Sowohl die Verzeichnisangaben für das Skript signieren.vbs als auch den
Namen und den Pfad des zu signierenden Skriptes müssen Sie natürlich anpassen. Das gilt auch für den Namen des Zertifikats; hier heißt es »Helma Spona«
und wurde mit SELFCERT.EXE erstellt.
Tipp Achten Sie unbedingt darauf, Parameterwerte, die Leerzeichen enthalten, wie hier der Zertifikatname, in Anführungszeichen einzufassen.
9.3.2
Skripte verifizieren
Wenn Sie den WSH entsprechend eingerichtet haben, wie dies im Abschnitt
9.3.4, Die Sicherheit des Windows Script Host aktivieren, noch näher erläutert
wird, werden nur Skripte mit gültigen Signaturen ausgeführt. Sie können
jedoch auch manuell prüfen, ob die Signatur gültig ist. Wie das geht, zeigt das
folgende Skript. Es erwartet als Parameter das auszuführende Skript und führt
dieses mit der Run-Methode des WSHShell-Objekts aus, sofern die Signatur gültig ist. Eine Signatur überprüfen Sie mit der VerifyFile-Methode des SignerObjekts. Ihr übergeben Sie einfach nur den Dateinamen und einen booleschen
Wert, der bestimmt, ob der WSH ein Dialogfeld mit den Signaturinformationen
anzeigen soll oder nicht. Geben Sie False an, gibt die Methode nur einen
booleschen Wert mit dem Ergebnis der Prüfung zurück, zeigt aber keine Signaturinfos an. Die Syntax der VerifyFile-Methode lautet:
objSigner.VerifyFile (Dateiname, Dialoganzeigen)
334
Sicherheit
1
2
In dieser ersten Variante des Skriptes wird der Rückgabewert der Methode in
einer Variablen blnErg gespeichert und abhängig von deren Wert dann das
Skript ausgeführt oder eine Fehlermeldung angezeigt.
3
4
5
6
Abbildung 9.12 Diese Meldung zeigt das Skript an, wenn ein signiertes Skript nachträglich geändert wurde
7
'Skriptname: verifizieren.vbs
'Autor: Helma Spona
'Datum: 11. August 2003
'Beschreibung: führt nach Prüfung
'
der Signatur ein
'
Skript aus
'--------- Variablen -----------Dim strSkriptname
Dim blnErg
Dim objSigner
Dim objFSO
Dim objWSHShell
'-------- Anweisungen ----------If WScript.Arguments.Named.Exists( _
"Dateiname") Then
Set objSigner = _
WScript.CreateObject( _
"Scripting.Signer")
Set objFSO=WScript.CreateObject(_
"Scripting.FileSystemObject")
strSkriptname = _
WScript.Arguments.Named("Dateiname")
If objFSO.FileExists(strSkriptname)= _
false then
MsgBox "Das angegebene Skript " & _
"existiert nicht",vbError
WScript.Quit
End If
blnErg=objSigner.VerifyFile(strSkriptname,False)
8
Das Sicherheitskonzept des WSH 5.6
9
335
If blnErg=True Then
Set objWSHShell= _
WScript.CreateObject("WScript.Shell")
objWSHShell.Run strSkriptname
Else
MsgBox "Die Signatur ist nicht mehr " & _
"gültig!",vbInformation
End If
Else
Wscript.Quit
End If
Alternativ können Sie aber auch dem Benutzer die Wahl lassen, ob er das Skript
trotz ungültiger Signatur ausführen möchte. Dazu übergeben Sie als zweiten
Parameter True an die VerifyFile-Methode (siehe Abbildung 9.13).
'Skriptname: verifizieren2.vbs
'Autor: Helma Spona
'Datum: 11. August 2003
'Beschreibung: führt nach Prüfung
'
der Signatur ein
'
Skript aus
...
'-------- Anweisungen ----------...
If objFSO.FileExists(strSkriptname)= _
false then
MsgBox "Das angegebene Skript " & _
"existiert nicht",vbError
WScript.Quit
End If
objSigner.VerifyFile strSkriptname,True
Else
Wscript.Quit
End If
Wenn Sie ein Zertifikat mit SELFCERT.EXE erstellt haben, erscheint auch bei
gültigen Signaturen eine Warnung (siehe Abbildung 9.14).
336
Sicherheit
1
2
3
4
5
6
7
8
Abbildung 9.13 Diese Warnung erscheint, wenn Sie als Parameter True angeben und die Signatur nicht mehr gültig ist.
9
Abbildung 9.14 Diese Meldung erscheint bei korrekten Signaturen mit Zertifikaten, die nicht als
vertrauenswürdige Stammzertifikate erstellt wurden.
9.3.3
Zertifikate zur den vertrauenswürdigen Stammzertifikaten
hinzufügen
Wenn Sie Ihr mit SELFCERT.EXE erstelltes Zertifikat zu den vertrauenswürdigen Stammzertifikaten hinzufügen möchten, geht dies mit Hilfe des Internet
Explorers. Sie exportieren dazu das Zertifikat in eine Zertifikatdatei und importieren es dann in die Liste der vertrauenswürdigen Stammzertifikatsstellen.
Gehen Sie dazu wie folgt vor:
1. Starten Sie den Internet Explorer und wählen Sie Extras • Internetoptionen
aus.
2. Aktivieren Sie die Registerkarte Inhalte und klicken Sie dort auf Zertifikate.
Das Sicherheitskonzept des WSH 5.6
337
3. Auf der Registerkarte Eigene Zertfikate werden alle mit SELFCERT.EXE
erstellten Zertifikate angezeigt. Markieren Sie dasjenige, das Sie als vertrauenswürdiges Stammzertifikat ausweisen möchten.
4. Klicken Sie auf Exportieren und in den ersten beiden Dialogen des gestarteten Assistenten auf Weiter.
5. Aktivieren Sie nun die Option Syntaxstandard kryptografischer Meldungen – »PKCS #7«-Zertfikate (.P7B) und aktivieren Sie dann das Kontrollkästchen Wenn möglich, alle Zertfikate im Zertifizierungspfad einbeziehen.
Danach wechseln Sie mit Weiter zum nächsten Schritt des Assistenten.
Abbildung 9.15 Das Exportformat für das Zertifikat auswählen
6. Im nächsten Schritt bestimmen Sie die Datei, in die das Zertfikat exportiert
werden soll. Über den Durchsuchen-Button können Sie ein Verzeichnis auswählen beziehungsweise ein neues Verzeichnis dafür anlegen und den Dateinamen angeben. Als Dateinamenserweiterung geben Sie .P7B an. Klicken Sie
nach Auswahl beziehungsweise Eingabe des Dateinamens auf Weiter und
im nächsten Dialog auf Fertig stellen (siehe Abbildung 9.16).
7. Wenn Sie auf diese Weise das Zertifikat exportiert haben, können Sie es nun
importieren. Aktivieren Sie dazu die Registerkarte Vertrauenswürdige
Stammzertifizierungsstellen und klicken Sie dort auf Importieren.
8. Im ersten Schritt des Assistenten klicken Sie auf Weiter, im zweiten können
Sie über den Durchsuchen-Button die Datei auswählen, die Sie soeben
exportiert haben. Als Dateityp müssen Sie dazu im Öffnen-Dialog Alle
Dateien (*.*) oder »PKCS #7«-Zertifikate (*.spc; *.p7b) auswählen, damit
die Datei angezeigt wird (siehe Abbildung 9.17).
338
Sicherheit
1
2
3
4
5
6
7
8
9
Abbildung 9.16 Auswählen der Exportdatei
Abbildung 9.17 Auswählen des zu importierenden Zertifikats
9. Klicken Sie in den nächsten beiden Dialogen auf Weiter und zum Schluss auf
Fertig stellen. Sie müssen dann noch bestätigen, dass das Zertifikat hinzugefügt werden soll, indem Sie den Dialog mit Ja bestätigen (siehe Abbildung
9.18).
10.Schließen Sie nun die beiden Dialoge des Internet Explorers mit Schließen
und OK.
Das Sicherheitskonzept des WSH 5.6
339
Abbildung 9.18 In diesem Dialog müssen Sie das Hinzufügen des Zertifikats bestätigen.
11.Wenn Sie nun das signierte Skript ausführen, wird die Signatur korrekt angezeigt und der Benutzer kann aufgrund der Signatur selbst entscheiden, wie er
verfahren möchte. Durch Aktivierung des Kontrollkästchens Inhalt von ...
immer vertrauen können Sie außerdem bestimmen, dass die Sicherheitswarnung in Zukunft nicht mehr erscheint, wenn das Skript mit dem gleichen
Zertifikat signiert ist.
Abbildung 9.19 Anzeige bei Verwendung eines Zertifikats aus einer vertrauenswürdigen
Quelle
9.3.4 Die Sicherheit des Windows Script Host aktivieren
Wenn Sie einstellen möchten, ob unsignierte Skripte, Skripte mit fehlerhafter
Signatur oder nur Skripte mit gültiger Signatur ausgeführt werden sollen, gibt
es dazu zwei Möglichkeiten. Befindet sich in Ihrem Netzwerk ein Domänenserver mit Windows 2000 oder Windows 2003, können Sie dies über die
Sicherheitsrichtlinien einstellen. Für Netzwerke ohne Windows-2000-/2003Server können Sie für jeden Rechner die Einstellungen separat festlegen. Das
funktioniert natürlich auch, wenn Sie Ihren Rechner ganz ohne Netzwerk
betreiben. Dazu müssen Sie aber manuell oder per Skript einen Registry-Eintrag
setzen. Der Schlüssel \HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows
340
Sicherheit
1
2
Script Host\Settings\TrustPolicy, der allerdings nicht standardmäßig vorhanden ist, bestimmt die Sicherheitseinstellungen. Als Werte kommen die
Werte aus Tabelle 9.1 in Frage. Wichtig ist allerdings, dass Sie den Wert als
REG_DWORD-Wert schreiben.
3
4
5
Wert
Bedeutung
0
Führt alle Skripte aus.
1
Fragt nach, wenn ein unsigniertes Skript ausgeführt werden soll.
2
Führt nur signierte Skripte aus.
6
7
Tabelle 9.1 Mögliche Registry-Werte für die Sicherheitseinstellungen des WSH
8
Unter Windows XP müssen Sie mit einem weiteren Schlüssel sicherstellen, dass
die Sicherheitseinstellungen auch aktiv sind. Sie müssen dazu den Schlüssel
HKLM\SOFTWARE\Microsoft\Windows Script Host\Settings\UseWINSAFER
auf 0 setzen. Die folgende HTA-Datei hilft Ihnen dabei, den Registry-Wert zu
setzen und die aktuelle Einstellung auszulesen. Nach Anzeige des Formulars
sorgt die Prozedur aktuelleEinstellung dafür, dass die aktuelle Einstellung
ausgelesen und der entsprechende Listeneintrag ausgewählt wird. Ein Klick auf
die Schaltfläche führt die Prozedur Wertsetzen aus, die die entsprechenden
Änderungen in der Registry vornimmt.
9
<html>
<head>
<hta:application id="oHTA"
applicationname="WSH-Sicherheit"
...
sysmenu="yes">
<title>WSH-Sicherheit</title>
<script type="text/vbscript">
Dim objWSHShell
Dim aktWert
set objWSHShell=CreateObject("WScript.Shell")
Sub starten(strPfad)
Dim objWSHShell
Set objWSHShell=CreateObject("WScript.Shell")
objWSHShell.Run strPfad
Set objWSHShell=nothing
End Sub
Sub Wertsetzen()
Das Sicherheitskonzept des WSH 5.6
341
objWSHShell.RegWrite _
"HKLM\SOFTWARE\Microsoft\Windows Script Host" & _
"\Settings\TrustPolicy", _
document.forms(0).stufe.selectedIndex, _
"REG_DWORD"
objWSHShell.RegWrite _
"HKCU\SOFTWARE\Microsoft\Windows Script Host" & _
"\Settings\TrustPolicy", _
document.forms(0).stufe.selectedIndex, _
"REG_DWORD"
objWSHShell.RegWrite _
"HKLM\SOFTWARE\Microsoft\Windows Script Host\" & _
"Settings\UseWINSAFER","0"
End Sub
Sub aktuelleEinstellung()
On Error Resume Next
aktWert=objWSHShell.RegRead( _
"HKLM\SOFTWARE\Microsoft\Windows Script Host" & _
"\Settings\TrustPolicy")
If Err.Number <>0 Then
aktWert=0
Err.Clear
End If
document.forms(0).stufe.selectedIndex=aktWert
End Sub
</script>
</head>
<body onload="aktuelleEinstellung">
<form>
<label>Aktuelle Sicherheitseinstellung für den WSH:
<select id="stufe">
<option value="0">
Alle Skripte werden ausgeführt
</option>
<option value="1">
Der Benutzer entscheidet, ob
unsignierte Skripte ausgeführt
werden sollen
</option>
<option value="2">Nur signierte Skripte
342
Sicherheit
1
2
werden ausgeführt
</option>
</select>
<hr>
<input type="button" onclick="Wertsetzen"
value="Einstellung ändern">
</label>
</form>
</body>
</html>
3
4
5
6
7
Hinweis Die HTA-Datei legt die Einstellungen für den ganzen Rechner im
Hauptschlüssel HKEY_LOCAL_MACHINE und gesondert für den aktuellen
Benutzer fest, so dass nach Festlegen der Einstellung auch andere Benutzer
des Rechners den gleichen Einschränkungen unterliegen.
8
9
Abbildung 9.20 Die HTA-Datei zeigt die aktuelle Einstellung an und ermöglicht deren
Änderung.
Wenn Sie die in Abbildung 9.20 gezeigte Einstellung nutzen, werden Sie bei
jedem ausgeführten Skript gefragt, ob es ausgeführt werden soll, es sei denn, es
ist signiert.
Abbildung 9.21 Mit dieser Meldung wird der Benutzer nun konfrontiert, wenn ein nicht
signiertes Skript ausgeführt werden soll.
Das Sicherheitskonzept des WSH 5.6
343
Index
!
# 303
& 52
* 53, 361
+ 53, 361
/ 53, 361
< 54, 361
<= 54, 361
<> 54, 361
<component> 271
<description> 261
<div> 293
<event> 272
<head> 282
<hr> 293
<hta:application> 281
<hta> 280
<job> 254
<method> 272
<p> 303
<package> 254
<property> 272
<public> 271
<registration> 271
<resource> 257
<script> 254, 271, 284
= 54, 361
> 54, 361
>= 55, 362
\ 53, 361
^ 53, 361
A
Add 215
AddPicture 219
Administratorrechte 204
ADO 223
ADODB.Connection 226
Alltagsaufgaben 15
And 56, 362
Anführungszeichen 45
Anweisungen
ausführbare 39
einrücken 42
mehrere pro Zeile 43
Anwendungen
Kontrolle über 213
AppActivate 246
Arguments 258
Arrays
durchlaufen 107
dynamische 110
eindimensionale 104
löschen 113
mehrdimensionale 104, 108
statische 110
Werte zuweisen 105
ASCII 160
asynchron 213
AtEndOfStream 162
Attribute 180
zugreifen auf 283
Auflistung
Files- 172
Folders- 173
NetworkDrives- 149
Auflistungen 125
Ausdrücke 50
Unter- 50
verwenden 51
auskommentieren 41
B
BAT-Dateien 16
Bedingung 69
Befehle, ausführbare 26
Benutzer einrichten 328
Benutzereingaben 279, 288
Benutzeroberflächen 279
grafische 16
Benutzerprofil 151
Benutzerrechte 327
BuildPath 156
ByRef 66
ByVal 66
Index
383
C
Call 41
Caret-Zeichen 243
Cascading StyleSheets 303
Case 75
CDbl 99, 139
Cells 239
CInt 81
Class 263
Close 161, 239
Code, Schritt für Schritt 31
Codeeinrückungen 42
Codevervollständigung 26
COM-Komponenten 268
Computername 148
Copy 176, 177
CopyFile 189
CreateFolder 175
CreateObject 71, 120, 147, 226
-Funktion 129
-Methode 129
CreateShortcut 145
CreateTextFile 167
CScript 16
CScript.exe 29
CSng 121
CSS 303
CStr 55
CursorType 233
D
Datei
-attribute 179
-filter 235
-größe 179
-typ 179
Dateien
Erstelldatum 179
kopieren 177, 182
löschen 195
suchen 196
zugreifen auf 170
Dateinamen, Platzhalter 182
Dateinamenserweiterungen
einblenden 326
Datei-Öffnen-Dialog 235
384
Index
Dateisystem, zugreifen auf 155
Datenbank
-treiber 224
Datenbankverbindung 225
Datenbankzugriffe 223
Datenfelder, siehe Arrays
Datensätze
abrufen 228
durchlaufen 229
erstellen 234
Datensatzgruppe 228
durchlaufen 229
schließen 230
Sperrverhalten 233
Typ 233
Datensatzzeiger 228
Datentypen 48
Debuggen 92
Debugger
Definition 31
Deklaration 44
Delete 176, 177
DeleteFile 195
Description 117, 144
Desktop-Verknüpfungen 143
DFÜ-Verbindungen
aufbauen 247
Dictionary 147
Do 78, 80, 83
document 215, 295
Do-Loop-Until 83
Do-Loop-While 83
Domänen 148
Doppelkreuz 303
Doppelpunkt 43
Do-Until-Loop 80
Do-While-Loop 78, 84
E
Eigenschaften erstellen 264
Elemente
private 263
Elementstil 303
empty 68
Endlosschleifen 77, 90
Environment 134
Eqv 56, 362
Erase 114
Ereignisprozeduren 118
Ereignisse 118, 266
Err 98, 117
Excel
Application 235
Tabellenzellen 239
Exec 137, 141
Exists 258
Exit 91
Function 66
Sub 64
ExpandEnvironmentStrings 205
F
False 54
Fehler
-beschreibung 117
-nummer 117
simulieren 103
Fenster
aktivieren 246
File 177
FileExists 237
Files 171
FolderExists 175
For 85
For-Each 85, 89
Formulare 288
formatieren 309
For-To 85
Funktionen 41, 63
aufrufen 41, 68
definieren 65
Parameter 66
Rückgabewert 65
Funktionswert 57
G
GetDrive 186
GetFile 171, 178
GetFolder 171, 175, 217
GetOpenFilename 235
getParentFolderName 173, 225
getResource 257
Groß- und Kleinschreibung 43
GUID 268
Gültigkeitsbereich 47
H
Haltepunkte 96
Hauptschlüssel 208
helpstring 261
Hochkomma 25, 40
HTA-Dateien 280
<body> 282
<head> 282
Attribute 283
Aufbau 281
document 295
formatieren 303
Formulare 288
innerHTML 295
mehrere Skripte in 296
Sicherheit 280, 281
Skripte aufrufen 283
Skripte ausführen 285
Vor- und Nachteile 280
HTML 279
I
Id-Stil 303
If 69
If-Then-ElseIf 73
Indexgrenzen 105
Indizes, nullbasierte 105
Initialisierung 44
innerHTML 295
InputBox 69
Instanzierung 118
internalName 272
Internet Explorer
Objektmodell 240
Sicherheit 323
steuern 240, 245
Is 55, 362
IsReady 187
Items 136
Index
385
J
Jobs 253
ausführen 255
K
Klammern, geschweifte 304
Klammersetzung 50
Klassen
Ereignisse 266
erstellen 263
-stile 308
Klassenstil 303
Kommentare 25, 40
einzeilige 40
WSF-Dateien 254
Kommentarzeilen 25
Konstanten 44
definieren 46
Gültigkeitsbereich 47
konvertieren
CDbl 139
CInt 81
CSng 121
CStr 55
L
Laufwerkstyp 186
Laufzeitfehler 91
behandeln 97
Laufzeitumgebung 17
LBound 107
Leerzeichen 42
abschneiden 163
Len 81, 183
Links formatieren 306
Listenobjekte 125
LNK-Dateien 144
M
me 295
Mehrfachverzweigungen 74
Meldungen ausgeben 26
Methoden 117
Mid 81, 124, 183, 186
386
Index
Mod 219
mod 53, 361
Move 176, 177
MoveFirst 228
MoveNext 230
MsgBox 26, 41, 132
Rückgabewert 63, 70
Schaltflächen 62
N
Namen
gültige Zeichen 48
Präfixe 49
sprechende 48
Namenskonventionen 48
Netzlaufwerk
trennen 151
verbinden 150
NetzwerkBenutzer 148
Domäne 148
Netzwerkeinstellungen 203
Netzwerklaufwerke
ermitteln 149
Netzwerkzugriffe 147
New 267
Next 85
Not 56, 362
Nothing 120
Number 117
O
Objekt
-automation 213
Connection- 226
document- 295
Err 98
File- 170, 177
FileSystemObject- 147, 155
Folder- 170
Recordset- 228
Scripting.Signer- 332
TextStream- 159
WshScriptExec- 141
WSHUrlShortcut- 145
Objektbibliotheken 17
Objekte 117
erstellen 267
erzeugen 118
globale 259
Gültigkeitsbereich 120
Lebenszyklus 118
zerstören 120
Office-Anwendungen 214
onClick 289
onload 285
OOP 117
Open 226
OpenTextFile 160, 167
Operatoren 49
arithmetische 53
logische 55, 56
mathematische 53
Vergleichs- 54
Verkettungs- 51, 52
Zuweisungs- 57
Operatorvorrang 50
Optionen 31
Or 56, 362
Outlook
2000/2002 321
Express 322
P
Parameter
benannte 259
definieren 66
-liste 66
-übergabeformen 66
Path 122, 173
Pfadangaben
aufschlüsseln 157
zusammen setzen 156
Platzhalter 190
Popup 132
Präfixe 49
Preserve 111
Programme ausführen 137
Programmierhilfen 24
Property
Get 264
Let 264
Set 264
Protokoll 191
Prozeduren 41, 63
aufrufen 41, 68
definieren 63
Parameter 66
rekursive 196
Q
Quellcode 22
Quit 121, 139, 216
Excel 236, 240
R
rasphone.exe 247
ReadLine 162, 239
ReadOnly 181
RecordCount 228
Recordset 228
ReDim 111
RegDelete 207
Registry 203
-Editor starten 203
-Einstellungen 203
Hauptschlüssel 208
lesen 204
schreiben 205
Registry-Schlüssel
erstellen 205
löschen 207
Registry-Wert
erstellen 205
löschen 207
RegRead 205
RegWrite 205
Replace 88, 166
required 261
Ressourcen 257
RGB 304
Rückgabewert 57
Run 123, 137
Index
387
S
Save 144
Schleifen 76
abweisende 76
Endlos- 77
-fuß 76
-kopf 76
nichtabweisende 76, 77, 82
-rumpf 76
Zähl- 76, 77, 84
Schlüsselwörter 39
ScriptFullName 123
Scripting Spy 24
Select 74, 121
SQL 228
SELFCERT.EXE 332
Sendkeys 242
Set 71
Sicherheit 15, 319
Benutzerrechte 321
E-Mail-Anhänge 320
E-Mails 320
Internet Explorer 320
Ordneroptionen 320
Outlook Express 320
Skriptdateien 320
Sicherheitseinstellungen 280
Sicherheitsupdate 281
Sicherheitsvorkehrungen 16
Signaturen 331
prüfen 334
SignFile 333
Size 179
Skript
-Debugger 31
-Editoren 23
-Viren 15
Skriptausführung zeitlich begrenzen
33
Skripte
ausführen 29, 137, 340
Ausführung sperren 340
Einstellungen 32
signieren 331
signierte 340
unterbrechen 130
verifizieren 334
388
Index
wieder verwenden 262
zeitlich begrenzen 33
Skripthost
Standard- 30
Skriptkomponenten 268
Assistent 268
Eigenschaften definieren 270
Methoden definieren 272
Registrierung 269
verwenden 275, 276
Skriptparameter 125
benannte 258
Skriptsprachen 17, 39
JScript 17
VBScript 17
Sleep 130, 242
Sondertasten 243
Sonderzeichen 261
SpecialFolders 142, 144
Sperrverhalten 233
Split 233
SQL 227
src 285
Stammzertifikatstellen 337
Standardeinstellungen
wiederherstellen 33
Startmenüverknüpfungen 144
Step 88
Stile
Element- 303
Id- 303, 307
Klassen- 303, 306
Strings 49
Sub 63
Subfolders 173
Symbole 16
Syntaxbeschreibung lesen 35
Systemsteuerung
aufrufen 248
Fenster öffnen 248
T
Tabulatoren 42
TargetPath 144, 145
Tastenkombinationen 242
senden 242
Teilausdrücke
definieren 50
Teilzeichenfolge 164
Textdateien 159
erstellen 167
schließen 161, 239
Zeilen lesen 239
Zeilenumbruchzeichen 183
TextStream 159
Time 91
Timer 91
Trim 165, 189
True 54
Typbibliothek
erstellen 275
Typenbibliotheken 269
U
UBound 107, 112
Umgebungsvariablen 134
Unicode 160
Unterbrechungsmodus 94
Unterstrich 42
Until 80, 83
URL-Verknüpfungen 144
UserName 148
V
Value 234
Variablen 44
definieren 44
deklarieren 44
Gültigkeitsbereich 47
initialisieren 44
VBA 17
vbCrLf 86, 162
VBScript
Dokumentation 22
Kommentare 25
vbTab 86
Vererbung 118
Vergleichsoperatoren 54
VerifyFile 334
Verkettungsoperatoren 51
Verzeichnisse
durchsuchen 198
erstellen 175, 185
Existenz prüfen 175
kopieren 176
löschen 176
verschieben 176
zugreifen auf 170
Verzweigungen 69
Virenscanner 71
Visible 215
VML 303
W
Wahrheitstabelle 86
Wend 83
Werte
boolesche 54
Datums- 46
numerische 46
Zeichenketten 45
While 78, 83
Windows-Verzeichnis 136, 205
Word
beenden 216
einblenden 215
starten 215
steuern 215
Word-Dokument
erstellen 215
erzeugen 215
Grafiken 217
Positionsrahmen 217
WSC-Dateien 268
<component> 271
<public> 271
<registration> 271
<script> 271
erstellen 271
WScript 16
WScript.exe 29
WSF-Dateien 253
<description> 261
<job> 254
<named> 261
<package> 254
Index
389
<script> 254
Attribute 254
ausführen 255
Beschreibung 261
Groß- und Kleinschreibung 253
Jobs 253
Jobs ausführen 255
Objekte 259
Parameter 261
Ressourcen 257
starten 256
Syntax 254
WSH
Dokumentation 22
installieren 17
Optionen 31
Sicherheit 319
Sicherheitsfeatures 331
updaten 17
Version 121
Version ermitteln 18
WSH-Dateien
anpassen 34
ausführen 34
erstellen 32
WSHNetwork 147
WshScriptExec 141
390
Index
WSHShortcut 144
WSHURLShortcut 144
X
XML 253
XML-Version 254
Xor 56, 362
Z
Zählschleifen 84
Zeichenketten
ersetzen 166
verknüpfen 51
Zeilenfortsetzungszeichen 42
Zeilenumbruch 86
Zeilenumbrüche 42, 165
Zeilenumbruchzeichen 42
Zeilenumbruchzeichens 183
Zertifikate
erstellen 332
exportieren 337
importieren 338
verwenden 332
Zuweisungsoperator 45
Zuweisungsoperatoren 57
Set 119
Zugehörige Unterlagen
Herunterladen