Davor kann sich kein Systemadministrator drücken: Standardaufgaben automatisieren und eine Anleitung dazu lesen.
Es ist immer nur eine Frage der Herangehensweise. Der eine will schnell "die" Lösung für sein Problem. Er sollte zu einem der Scripting-Anleitungsbüchern greifen, die für
seinen speziellen Zweck geschrieben wurden, vergleichbar mit einem "Kochbuch". Er wird aber bald merken, dass "die" Lösung auf seinem System vielleicht nicht so läuft, wie
er sich das vorgestellt hat und fragt sich spätestens dann, wie es möglich ist, das Script an die eigenen Bedürfnisse anzupassen.
Genau das erklärt ihm
Holger Schwichtenberg in dem Buch
Windows Scripting. Es mag für ihn nicht das Buch
erster Wahl gewesen sein, weil es ihn im Umfang erschlagen hat und weil es in den ersten Kapiteln sehr theoretisch zuging. Aber wenn er Geduld und Ergeiz mitbringt, dann
wird ihn das Buch mit einem ganz besonderen Wissensschatz belohnen.
Dass es sich nicht um ein Buch vorgefertigter Lösungen handelt, merkt man bereits im
1. Kapitel. Es beginnt mit einer Einführung in die Scripting-Sprachen unter
Microsoft Windows. Endlich erklärt jemand dem Leser, was die Unterschiede zwischen Visual Basic Script und Visual Basic for Applications sind. Endlich wird gezeigt, welche
Komponenten für besondere administrative Aufgaben gemacht wurden. Zwar gibt es einen kleinen Scripting-Schnellstart in diesem Kapitel, aber primär geht es um einen
theoretischen Überblick über die Materie.
Im Anschluss erläutert
Schwichtenberg in
Kapitel 2 das Component Object Model (COM). Dies ist die Voraussetzung für die Interaktivität eines eigenen Scripts
mit dem Rest des Betriebssystems. Die Kenntnis der Grundlagen des COM ist daher für ein effektives Arbeiten mit Scripten unentbehrlich. Hieran kranken die Kochbücher, die
nur vorgefertigte Lösungen präsentieren. Erst mit eigenem Hintergrundwissen über die COM-Komponenten ist der Leser in der Lage, Scripte für seine Umgebung zu erstellen. Die
Erfahrung, aus welchen Bausteinen die COM-Komponenten bestehen oder welche Klassen, Schnittstellen und Sicherheiten sie bieten, ist mehr als bloße Theorie. Es ist wichtige
Grundlage.
Im
3. Kapitel geht es dann so richtig los: Nun kommt das an die Reihe, was der Titel des Buches schon lang versprochen hatte. Hier erfährt der Leser die Grundlagen
der Visual Basic Sprachfamilie. Dass die einzelnen Familienmitglieder, wie Visual Basic, Visual Basic for Applications, Visual Basic Script, embedded Visual Basic (für
Windows CE) und das relativ neue Visual Basic .NET in wesentlichen Teilen unterschiedlich sind, wird hier genauer dargestellt. Dennoch gibt es eine Schnittmenge; einen Teil
der Sprache, die für alle Familienmitglieder relativ gleich ist. Den zu lernen ist leicht. Programmierkenntnisse sind nicht nötig. Beginnend mit einfachen Ein- und
Ausgabefunktionen wird das gesamte Spektrum erläutert. Auch ein Anfänger beherrscht nach diesem Kapitel Variablen, Datentypen, Bedingungen, Schleifen, Unterroutinen und
sogar objektbasierte Programmierung. Anhand vieler kleiner Scripte werden alle Sprachelemente erklärt. Allein schon mit diesen Beispielscripten lässt sich ein beachtliches
Archiv nützlicher kleiner "Helfer" aufbauen. Wem das Abtippen zu mühsam ist, der findet auf der dem Buch beiliegenden CD-ROM die meisten der Listings.
Mit dem Rüstzeug der letzten beiden Kapitel kribbelt es in den Fingern und endlich sollen die ersten eigenen Scripte her. Bevor der Leser an größere Projekte herangeht, hat
der Autor in
Kapitel 4 einen kleinen theoretischen Teil eingeschoben. Der ist aber nicht minder wichtig. Denn hier erfährt man alles über den Scripting-Host. Dieser
führt die Befehle aller selbst erstellten Scripte aus. Und dass es nicht nur einen, sondern eine ganze Hand voll Scripting-Hosts auf jedem Windows-System gibt, macht die
Sache nicht gerade klarer. Um so wichtiger ist es, sich hier die Kenntnisse über die Gemeinsamkeiten und Unterschiede anzueignen. Wenngleich der Autor nur einen Überblick
geben möchte, ist dieses Kapitel wieder eine wichtige Grundlage zur Entscheidung darüber, welchem Scripting-Host der Systemadministrator seine Aufgaben anvertrauen kann.
Nicht jeder Scripting-Host ist für alle Aufgaben gleich gut ausgestattet. Wer in diesem Bereich zu schnell liest, kann wertvolle Zeit mit der Programmierung an einem Script
für den falschen Scripting-Host verlieren. Also ist es sinnvoll, sich in Kapitel 4 mit der Frage auseinanderzusetzen, ob WScript oder CScript verwendet werden soll, ob
DHTML-Scripting für den Internet-Explorer oder Active Server Pages (ASP) in Frage kommen, ob vielleicht ein spezieller Scripting-Host für eine besondere Aufgabe besser
geeignet ist und wie es mit der Sicherheit der Automation aussieht.
Dann endlich sind alle Vorfragen geklärt. Aber der Autor ist noch nicht am Ende. Ganz im Gegenteil, denn nun zeigt sich der Schatz des Buches. Jeder, der mit dem Wissen der
bisherigen Kapitel ein Script schreibt, kommt irgendwann an den Punkt, wo man vor der Frage steht: Wie kann ich denn nun auf eine Funktion des Betriebssystems zugreifen? Wie
ermittele ich Daten und wie kann ich Systemeinstellungen automatisch verändern? An diesem Punkt stand vor allem schon jeder Systemadministrator, der 10 Benutzerkonten pro
Tag mit einem Windowssystem erstellen musste. Und an diesem Punkt hilft
Kapitel 5 weiter. Es erläutert die wichtigsten COM-Komponenten im einzelnen. Beispielsweise
die WSH Runtime Library, das Active Directory Service Interface (ADSI) oder das Windows Management Instrumentation (WMI), um nur die drei wichtigsten zu nennen. Zu jeder
Komponente gibt es eine Erläuterung des Objektmodells und viele Anwendungsbeispiele. Besonders die vielen Tabellen mit der Auflistung nahezu aller erforderlichen Attribute
von Objekten mit vielen Erklärungen machen die COM-Komponenten viel durchschaubarer. Endlich erfährt man aus einer Hand, wie die Objekte heißen und man sie manipulieren
kann. Endlich braucht man bei vorgefertigten Lösungen keine Angst mehr zu haben, dass die auf dem eigenen System nicht funktionieren: man kann sie mit diesem Buch getrost
vergessen und eigene Scripte erstellen.
Alles, was man sonst noch gern über Windows Scripting erfahren möchte, findet sich im
Kapitel 6 unter dem Stichwort "Fortgeschrittene Techniken" wieder. Dort
beschreibt der Autor die - leider nicht triviale - Fehlersuche im Script, wie man sein Script kodieren und damit vor "Abschreibern" und "Manipulierern" schützen kann oder
wie die Scripte digital signiert werden können. Auch der Bereich des Remote Scripting, also des Ausführens von Scripten auf entfernten Computern, wird hier dargestellt.
Ebenfalls für den fortgeschrittenen Programmierer, dem die simplen Eingabemöglichkeiten seiner Scripte nicht mehr genügen, ist das Einbinden von Visual Basic-Formularen
gedacht. Ferner wird hier näher auf den Scripting-Host von Microsoft Office eingegangen, der mit seinem Familienmitglied Visual Basic for Applications etwas mehr Komfort in
die Arbeit mit Office bringen kann. Für Unerschrockene schließt sich eine Beschreibung der Entwicklung eigener COM-Komponenten und eigener Scripting-Hosts an.
Die folgenden beiden Kapitel sind ganz .NET gewidmet. Es wird zunächst das .NET Framework in
Kapitel 7 besprochen. Dies richtet sich eher an den echten Programmierer,
denn das .NET Framework ist noch relativ frisch auf dem Markt. Aber es steht in den Startlöchern, um die COM-Komponenten abzulösen. Dabei setzt .NET auf ein
plattformunabhängiges, komponentenbasiertes Programmiermodell. Es wird sich langfristig auszahlen, wenn man sich auch als Systemadministrator frühzeitig mit dieser Technik
auseinandersetzt. Wenngleich die in den ersten Kapiteln gelernten Grundlagen weiterhin gültig bleiben, gibt es doch wesentliche Unterschiede zwischen .NET und COM. So werden
die bei COM im Zentrum stehenden Schnittstellen bei .NET die Klassen das wichtigste Element zum Datenaustausch sein. Im Gegensatz zu COM wird es bei .NET die Vererbung von
Komponentenklassen geben. Nach einer Erläuterung der technischen Bausteine des .NET Frameworks wird auf die neue Visual Basic .NET Sprache eingegangen. Hier kann allerdings
nicht mehr von Windows Scripting gesprochen werden, denn wie auch schon Visual Basic setzt Visual Basic .NET einen Compiler voraus und ist nicht wirklich eine Scriptsprache.
Erst im
Kapitel 8 geht der Autor wieder auf das Thema Windows Scripting ein. Allerdings muss er einräumen: Einen offiziellen Scripting-Host für .NET-Scripting gibt es
(noch) nicht. Um dennoch das Kapitel nicht auf der ersten Seite beenden zu müssen, stellt er kurz seinen selbst entwickelten DOTNET Scripting-Host zur Verfügung. Mit dem
lassen sich schon jetzt eigene Scripte dieser zukünftigen Technik entwickeln. Doch bevor das geschehen kann, muss der Leser wieder etwas Theorie überstehen. Die Scripte sind
vom Aufbau und Dateiformat leicht unterschiedlich zu den bisherigen Windows Scripten. Aber der Unterschied ist nicht zu groß und führt nicht zu Verwirrung. Beispiele, wie
der Zugriff auf das Dateisystem mit dem Kopieren und Verschieben von Verzeichnissen, erleichtern den Einstieg in .NET Scripting. Dass damit der Zugriff auf ADSI-Objekte
leicht möglich ist, erfährt man im Anschluss. Und auch hier runden Tabellen mit Übersichten zu den Attributen und Unterschieden zu den COM-Objekten und viele nützliche
kleine Beispiele den Einstieg ab.
Kapitel 9 widmet sich den Werkzeugen für die Entwicklung von Windows Scripten. Es werden eine Fülle von Editoren, Debuggern, Objektkatalogen, COM-Viewer und Compiler
systematisch vorgestellt. Einige davon sind auf der dem Buch beiliegenden CD-ROM zu finden.
Im letzten
Kapitel 10 kann der Leser dann seinen Lernerfolg messen. Dort werden Fallbeispiele zunächst als Aufgabe vorgestellt. Wer es sich zutraut, kann nach der
konkreten Aufgabe ein Script zum massenhaften Erstellen von Benutzerkonten, einen Web-Druckermanager, einen Multi Server Disk Viewer oder ein Script zur
Hardwareinventarisierung entwickeln. Wer nicht so viel Geduld hat, kann in der jeweiligen Lösung erfahren, welche Schritte zum fertigen Script nötig sind. Dabei werden
einzelne Script-Zeilen und Funktionen sehr ausführlich erläutert. Am Ende findet sich dann das fertige Script.
Nicht zu vergessen ist der
Anhang des Buches. Hier findet sich ein Kapitel über die Grundlagen objektorientierter Komponentenarchitekturen, eine Kurzeinführung in
XML, eine Referenz wichtiger Visual Basic-Funktionen, ein Hinweis auf die CD-ROM und eine zum Buch gehörende Webseite, auf der man aktuelle Informationen abrufen und mit
anderen Lesern diskutieren kann. Schließlich listet der Autor ein Literaturverzeichnis gedruckter Literatur und vieler weiterer Quellen im Internet auf.
Gesamteindruck:
Ein in jeder Hinsicht beeindruckendes Buch. Weniger durch den Effekt, den man bei Kollegen erzielt, wenn man dieses gewichtige Werk auf dem Schreibtisch stehen hat, als
vielmehr durch den großen Lerneffekt. Während man mit anderen "Kochbücher", die aus fertigen Scripten zur Administration bestehen, schnell an Grenzen stößt, erfährt man in
diesem Buch wirklich was hinter Windows Scripting steht. Die dazu notwendige Theorie mag zunächst abschrecken.
Schwichtenberg schafft es aber durch leicht
verständlichen Stil sehr komplexe Themen nahe zu bringen. In dem zunächst im Überblick in ein Thema eingeführt wird, erlangt der Leser auch ein Gefühl für das, was ihn
erwartet. Wenn dann im eigentlichen theoretischen Teil etwas beschrieben wird, was im Überblick schon angesprochen wurde, stellt sich schnell ein Widererkennungseffekt ein.
Ähnlich angenehm ist der Umgang mit den natürlich notwendigen Fachbegriffen. Für den Programmierprofi sind sie kein Problem, aber der Administrator könnte leicht die
Motivation verlieren. Aber auch das ist bei
Schwichtenberg kein Problem, denn mit komplizierten Fachbegriffe wird behutsam umgegangen und durch leichte Erklärungen
wird ihnen der Schrecken genommen.
Das Buch wird für den
absoluten Anfänger ein harter Brocken. Es ist aber auch für ihn möglich, die Gemeinsamkeiten der Scriptsprachen zu erlernen und schnell eigene
kleine Scripte zu schreiben. Der
fortgeschrittene Systemadministrator hat es da leichter. Er kann bekannte Kapitel überspringen und findet in der Beschreibung der
COM-Komponenten wertvolle Informationen. Diese dürften auch für den
Profiprogrammierer von Interesse sein. Für ihn bietet das Buch eine gute Referenz zum Nachschlagen
der wichtigsten Komponenten-Objekte.