WMI-Scripting

Betriebssysteminformationen

Über WMI können auch Statusinformationenn des Betriebssystems ermittelt werden. Das Listing 2 zeigt ein Beispiel für ein Skript, das solche Informationen ausliest und anzeigt.

Listing 2: Skript für den Zugriff auf wichtige Einstellungen des
Betriebssystems
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer)
Set colOperatingSystems = objWMIService.InstancesOf("Win32_OperatingSystem")
For Each objOperatingSystem In colOperatingSystems
Wscript.Echo "Name: " & objOperatingSystem.Name & vbCrLf & _
"Bezeichnung: " & objOperatingSystem.Caption & vbCrLf & _
"Aktuelle Zeitzone: " & objOperatingSystem.CurrentTimeZone & vbCrLf & _
"Letzte Startzeit: " & objOperatingSystem.LastBootUpTime & vbCrLf & _
"Lokale Zeit: " & objOperatingSystem.LocalDateTime & vbCrLf & _
"Region: " & objOperatingSystem.Locale & vbCrLf & _
"Hersteller: " & objOperatingSystem.Manufacturer & vbCrLf & _
"Typ: " & objOperatingSystem. OSType & vbCrLf & _
"Version: " & objOperatingSystem.Version & vbCrLf & _
"Service Pack: " & objOperatingSystem.ServicePackMajorVersion & _
"." & objOperatingSystem.ServicePackMinorVersion & vbCrLf & _
"Windows-Verzeichnis: " & objOperatingSystem.WindowsDirectory
Next

Bild 3: Die Detailinformationen zum installierten Betriebssystem.
Bild 3: Die Detailinformationen zum installierten Betriebssystem.

Das Skript wirkt auf den ersten Blick etwas unlogisch, weil ja nur ein Betriebssystem vorhanden sein kann, aber dennoch zunächst eine Sammlung der entsprechenden Objekte erstellt und in einer Schleife durchlaufen wird. Dieser Ansatz hat seine Ursache darin, dass die Grundlogik von WMI darauf ausgelegt ist, Informationen über eine Gruppe von Objekten zu ermitteln und die Betriebssysteme, von denen es eben nur
eines gibt, einen Sonderfall darstellen.

Auch hier lohnt sich wieder ein Blick auf die weiteren Methoden und Eigenschaften – im Listing werden nur Eigenschaften ausgelesen. Die vier Methoden sind:

  • Reboot: Herunterfahren des Systems und anschließender Neustart.

  • SetDateTime: Setzen von Uhrzeit und Datum des Rechners.

  • Shutdown: Herunterfahren des Systems.

  • Win32Shutdown: Zugriff auf alle Funktionen zum Herunterfahren und Neustart, die von Windows in den entsprechenden Dialogfeldern angeboten werden.

Mit Hilfe dieser Methoden kann also beispielsweise auch der gezielte Shutdown oder Neustart verschiedener Server veranlasst werden, was vor allem in Testumgebungen hilfreich sein kann, wenn mit dem Windows Server 2003 gearbeitet wird und die Eingabe von Informationen über den Grund des Herunterfahrens vermieden werden soll.


Neben den Informationen aus dem Listing lassen sich mit den Eigenschaften noch viele weitere Informationen ermitteln. Dazu gehören unter anderem:

  • Statusinformationen zur DEP (Data Execution Prevention) zur Ermittlung, ob diese aktiviert ist und ob sie auch von der Hardware unterstützt wird.

  • Das Verschlüsselungsniveau für sichere Transaktionen, also ob mit 40-Bit-, 128-Bit- oder einer anderen Verschlüsselung gearbeitet wird.

  • Speicherinformationen wie die Größe des virtuellen Speichers, die Menge des freien physischen
    Hauptspeichers und Informationen zu den Auslagerungsdateien.

  • Die Anzahl der Benutzer, für die das System lizenziert ist, und die Anzahl der aktuellen Sitzungen auf einem Server.

  • Die aktuelle und maximal zulässige Anzahl von Prozessoren.

Wie auch bei den Diensten sind alle Eigenschaften nur lesbar und können nicht modifiziert werden. Sie können aber für viele Zwecke eingesetzt werden. So ist die Abfrage der Statusinformationen beispielsweise zu DEP interessant, um zu ermitteln, welche Systeme überhaupt schon hardwareseitig diese Technologie unterstützen.