Windows 2000 automatisieren
Artikel erschienen in Swiss IT Magazine 2001/03
Die Automatisierungsfunktionen von Windows NT hielten sich mit dem AT-Befehl und reichlich archaischen Anmelde-Scripts in engen Grenzen. Bei Windows 2000 hat sich das grundlegend geändert.
Die Funktionalität von Windows NT war bis zum Erscheinen des Service Pack 4 und des NT Option Pack im Bereich der Automatisierung noch stark von DOS geprägt. Die Batch-Dateien mussten mit dem gleichen minimalistischen Satz an Befehlen wie schon zu DOS-Zeiten erstellt werden. Die Fokussierung von Microsoft auf eine Systemadministration über die grafische Oberfläche hatte dazu geführt, dass die Anforderungen nach einer leistungsfähigen Umgebung für die Automatisierung der Systemverwaltung lange vernachlässigt wurden. Die Lücken wurden auch nur unzureichend durch Add-ons geschlossen. Erst mit dem Windows Scripting Host (WSH), der mit dem Option Pack geliefert wurde und ab NT 4.0 mit dem Service Pack 4 eingesetzt werden kann, hat sich das geändert. Damit wurde erstmals eine leistungsfähige Umgebung für die Ausführung von Scripts für Windows NT verfügbar. Der WSH ist auch Bestandteil von Windows 2000.
Aber nicht nur die erweiterten Scripting-Funktionen, sondern auch die einfache zeitliche Steuerung über den neuen Task Scheduler oder Scripts, die über Gruppenrichtlinien gesteuert werden, vereinfachen die Administration.
Die klassischen DOS-Batch-Dateien lassen sich auch bei Windows 2000 noch nutzen. Sie sind aber nur noch im Ausnahmefall von Interesse. Eine Nutzung dieser Stapeldateien ist immer dann interessant, wenn keine Interaktion mit dem Benutzer erfolgen muss und nur einfache Befehle, insbesondere zum Kopieren und Löschen von Dateien, benötigt werden. Solche Scripts lassen sich mit den klassischen Befehlen wie Copy, Xcopy oder Delete sehr einfach erstellen. Da auch diese Batch-Dateien beispielsweise über den Task-Scheduler angesprochen werden können, lässt sich ihre Ausführung nun gut steuern.
So können beispielsweise temporäre Verzeichnisse wie im Baum C:\Dokumente und Einstellungen\%username%\Lokale Einstellungen\Temp beim Beenden einer Arbeitssitzung einfach geleert werden.
Deutlich mehr Funktionalität bietet der WSH. Der Preis, der dafür zu zahlen ist, liegt in der Komplexität. Da COM-Objekte angesteuert werden, sollte eine gewisse Vertrautheit mit der Programmierung von VBscript oder Jscript, also der Script-Variante von Visual Basic oder Microsofts Implementierung von JavaScript, vorhanden sein. Zu empfehlen ist die Verwendung von VBscript, da es dafür deutlich mehr Beispiele gibt. So sind etwa die meisten Scripts, die mit dem Windows 2000 Resource Kit geliefert werden, mit Hilfe von VBscript erstellt worden.
Mit Hilfe des WSH lassen sich beispielsweise Anpassungen in der Registry vornehmen. Es ist zudem auch möglich, Dateien zu löschen, auf WMI (Windows Management Instrumentation) oder ADSI (Active Directory Service Interface) zuzugreifen. Ebenso sind Scripts in der Lage, Funktionen von Office-Programmen zu nutzen. Damit könnten beispielsweise neue Benutzer im Active Directory auf Basis von Excel-Tabellen angelegt werden. Noch mehr Möglichkeiten bieten hier aber Zugriffe auf Datenbanken, die beispielsweise durch die Ansteuerung von ADO (Active Data Object) aus dem WSH realisiert werden können.
Scripts helfen, wiederkehrende Aufgaben zu automatisieren. Mit Hilfe des Task Scheduler von Windows 2000 kann auch die zeitliche Ausführung gesteuert werden. Bei Windows NT gibt es nur den AT-Befehl. Dieser stellt aber nur eine Basisfunktionalität zur Verfügung. Der Task Scheduler ermöglicht eine differenzierte Steuerung beispielsweise von Ausführungszeiten und des Benutzerkontos, unter dem ein Script ausgeführt wird.
Der Task Scheduler findet sich als Geplante Tasks in der Systemsteuerung. Ein Assistent steht dort zur Seite, um einen geplanten Task hinzuzufügen. Nach der Auswahl der auszuführenden Anwendung kann der betreffende Zeitpunkt konfiguriert werden. Je nach gewähltem Zeitraum lassen sich dann die Intervalle steuern. Bei Auswahl eines Wochen-Intervalls lässt sich ein Task beispielsweise an mehreren Wochentagen, aber auch nur jede zweite oder dritte Woche ausführen. Anschliessend muss das Benutzerkonto festgelegt werden, das von dem Task verwendet werden soll. Tasks werden also nicht zwingend im Kontext eines gerade angemeldeten Benutzers durchgeführt. Es lässt sich vielmehr ein Benutzerkonto mit genau definierten Berechtigungen verwenden oder alternativ auch ohne lokal angemeldeten Benutzer ablaufen. Abschliessend können noch erweiterte Eigenschaften konfiguriert werden.
Für einen Task lassen sich hier beispielsweise auch mehrfache Zeitpläne konfigurieren. Die Tasks können also beispielsweise jeweils Freitags, unabhängig davon aber auch noch einmal monatlich an einem festgelegten Datum ausgeführt werden.
Besonders interessant sind hier die Festlegungen im Register Einstellungen. Mit diesen kann ein Task beispielsweise nach der letzten konfigurierten Ausführung automatisch gelöscht werden. Dazu ist es aber auch möglich, eine maximale Ausführungsdauer zu definieren.
Das ist insbesondere bei Tasks für die Server-Maintenance interessant, wenn diese von untergeordneter Bedeutung sind. Durch die Definition der maximalen Laufzeit oder einer Ausführung nur während der Leerlaufzeit kann beispielsweise das Löschen von Dateien abgebrochen werden, wenn wichtigere Aufgaben auf dem Server anstehen. Damit lassen sich solche Tasks beispielsweise mit ressourcenintensiven Maintenance-Aktivitäten bei Datenbanksystemen koordinieren. Ein Batch, der Dateien in angegebenen Verzeichnissen löscht, kann jederzeit unproblematisch abgebrochen und wieder neu gestartet werden. Im Register Sicherheitseinstellungen kann schliesslich noch definiert werden, wer die Tasks verwalten darf.
Die geplanten Tasks erlauben eine exakte Steuerung von Systemaktivitäten. Als Tasks können sowohl Scripts und Batch-Dateien als auch Anwendungsprogramme gestartet werden. Wichtig dabei ist, dass die automatisch gestarteten Applikationen ohne Benutzerinteraktion auskommen müssen. Der Start von Anwendungsprogrammen wie beispielsweise Backup-Tools setzt dabei typischerweise voraus, dass das Verhalten dieser Anwendungen über Befehlszeilenparameter, die beim Start übergeben werden, gesteuert werden kann. Das ist aber bei typischen Anwendungen wie Datensicherungsprogrammen oder Maintenance-Tools für Datenbanken oder Messaging-Server der Fall.
Um das Backup von Daten unter Windows 2000 mit Hilfe des integrierten Backup-Programms zu automatisieren, muss man aber nicht einmal den Bereich Geplante Tasks verwenden. Im Programm Sicherung, das sich unter Programme - Zubehör - Systemprogramme findet, gibt es das Register Aufträge planen. Durch Auswahl der Schaltfläche Auftrag hinzufügen können hier neue Sicherungs-Tasks erstellt werden.
Die Erstellung solcher Jobs wird wieder durch einen Assistenten unterstützt. Nach der Auswahl der zu sichernden Informationen und des zu verwendenden Sicherungsmediums kann der Sicherungsvorgang festgelegt werden. Das Programm Sicherung unterstützt hier eine normale Sicherung, das Kopieren von Informationen, die differentielle und inkrementelle Sicherung sowie die Sicherungsart Täglich, mit der nur Dateien, die am aktuellen Tag verändert wurden, gesichert werden. Die gesicherten Dateien können anschliessend noch einmal überprüft werden. Je nach Speichermedium kann auch die Hardwarekomprimierung genutzt werden.
Auch bei der Definition von Tasks für das Programm Sicherung können dann, neben einer Reihe weiterer Optionen, Festlegungen zum Benutzerkonto und zum Zeitpunkt der Datensicherung getroffen werden. Wenn in diesem Bereich die Option Zeitplan festlegen ausgewählt wird, werden zwei Register von Geplante Tasks angezeigt. Daher ist es auch nicht überraschend, dass der hier konfigurierte Sicherungs-Job in der Liste der geplanten Tasks auftaucht.
Die zeitliche Steuerung von Sicherungsvorgängen wird auf diese Weise deutlich erleichtert. Was fehlt, ist aber eine integrierte Unterstützung für gängige Sicherungsschemata, mit denen beispielsweise eine tägliche differentielle Sicherung und eine regelmässige vollständige Sicherung erfolgt. Solche Schemata müssen zwar manuell abgebildet werden. Dennoch ist es vergleichsweise einfach, die Datensicherung mit Windows 2000 in sinnvoller Weise zu automatisieren.
Ein ganz anderer Bereich der Automatisierung bei Windows 2000 sind die sogenannten Taskpads. Diese können in einer Reihe von Administrationsprogrammen von Windows 2000 erstellt werden. Ein Beispiel ist die Computerverwaltung, falls die Anwendung explizit in eine neue MMC-Konsole aufgenommen wird. Ein Taskpad ist eine Ansicht mit Schaltflächen, über die ausgewählte Aktionen ausgeführt werden können. So kann etwa eine Ansicht der Ereignisanzeige als Taskpad definiert werden, zu der Schaltflächen für das Sichern und Löschen der Protokolle hinzugefügt werden.
Der Taskpad-Ansicht können verschiedene Arten von Tasks hinzugefügt werden. So lassen sich etwa Menübefehle wie auch Shell-Befehle ausführen. Ausserdem kann zu Ansichten, die in der MMC-Anwendung im Register Favoriten aufgenommen wurden, gewechselt werden. Bei der Ausführung von Programmen ist es wiederum möglich, beliebige Scripts, Batch-Dateien und ausführbare Programme mit geeigneten Parametern aufzunehmen. Hilfreich können hier auch Utilities wie SendMail oder FastMail sein, mit denen E-Mails versendet werden können, damit beispielsweise Operatoren, wenn sie Problemsituationen erkennen, gezielt Mails versenden können.
Neu bei Windows 2000 sind auch die wesentlich erweiterten Funktionen für die automatisierte Ausführung von Scripts bei bestimmten Ereignissen. In den Gruppenrichtlinien können bei den Windows-Einstellungen im Bereich der Computerkonfiguration Scripts angegeben werden, die beim Starten beziehungsweise Herunterfahren des Systems ausgeführt werden sollen. Beim Systemstart lassen sich so beispielsweise aktuelle Versionen der Dateien HOSTS oder LMHOSTS kopieren oder beim Systemabschluss temporäre Dateien löschen. Analog können bei der Benutzerkonfiguration Scripts festgelegt werden, die beim Anmelden oder Abmelden von Benutzern ablaufen sollen.
Mit diesen verschiedenen Ansätzen sind die Automatisierungsfunktionen von Windows 2000 gegenüber allen Vorgängerversionen deutlich erweitert worden. Windows 2000 ist zudem ein Betriebssystem, das auch über Scripts effizient verwaltet werden kann. Allerdings darf die Komplexität des Windows Scripting Host nicht unterschätzt werden - die Erstellung von Scripts über VBscript oder andere unterstützte Sprachen ist wesentlich komplexer als die bisherigen Batch-Dateien.