Server-Überwachung mit ASP

Fernwartung per WMI

Mit WMI können Rechner nicht nur lokal, sondern auch über das Netz verwaltet werden. Dazu bietet WMI eine SQL-ähnliche Abfragesprache, mit der man Informationen über einen bestimmten Rechner aufruft. Außerdem ist es nicht nur möglich, von vornherein festgelegte Informationen abzufragen - man kann zudem herausfinden, welche Informationen überhaupt vorhanden sind. Bei reinem SQL lässt sich das zum Beispiel mit show tables und describe TableName erledigen. In unserem Beispiel wird allerdings davon ausgegangen, dass der betroffene Rechner allein im Netz hängt. Daher wird nur dieser Rechner selbst betrachtet und per ASP-Seiten verwaltet.

Das WMI bietet Zugriff auf eine große Menge an Objekten. Ein solches Objekt ist zum Beispiel eine Festplatte in einem bestimmten System. Alle Objekte befinden sich dabei in Container-Objekten, so sind zum Beispiel alle Festplatten eines Systems über den Festplatten-Container ansprechbar. Über den Inhalt des Containers können Sie iterieren und so die einzelnen Objekte erreichen. Wie das nun genau geschieht, hängt von der verwendeten Sprache ab.

Ferner stellt WMI für jedes Objekt einen Satz an Eigenschaften zur Verfügung. Diese lassen sich auslesen und zu großen Teilen auch setzen. Eine der Eigenschaften einer Festplatte ist zum Beispiel ihre Größe - hier handelt es sich allerdings um eine nicht veränderbare Eigenschaft. Den Namen (Laufwerksbuchstaben) einer Festplatte hingegen kann man sehr wohl per WMI festlegen.

Darüber hinaus steht für jedes Objekt ein Satz an Methoden zur Verfügung, die sich auf das Objekt anwenden lassen: Im Falle eines Verzeichnisses auf einer NTFS-formatierten Partition ist das zum Beispiel die Methode Compress(), die das Verzeichnis komprimiert.

Objekte dieser Art stellt WMI bei Windows in sehr großer Zahl zur Verfügung: Praktisch jede Aufgabe, die man mit der MMC und den darin enthaltenen Tools ausführen kann, lässt sich auch per WMI durchführen. Darüber hinaus steht noch eine Untermenge der Win32-API zur Verfügung: Diese können beispielsweise Prozesse beenden oder starten.

So weit zur Theorie. Im Fall von Webseiten funktioniert die Praxis im Wesentlichen so, wie Sie das von ASP-Scripts bereits gewohnt sind. Der zentrale Unterschied ist die Methode, mit der die zu nutzenden Objekte erzeugt werden. Genauer gesagt die Art und Weise, in der die das Objekt beschreibenden Parameter für die GetObject()-Methode zusammengesetzt werden.