Umgebungsvariablen und Eingabedateien in Skripts

Umgebungsvariablen und WMI

Diese Problematik wird auch bei Verwendung von WMI für den Zugriff auf die Umgebungsvariablen nicht gelöst. Listing 2 zeigt ein Beispiel für ein Skript, das über WMI arbeitet.

Listing 2: Das Auslesen von Umgebungsvariablen mit WMI
(Quelle: Microsoft)
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colVar = objWMIService.ExecQuery( _
"Select * from Win32_Environment")
For Each objVar in colVar
Wscript.Echo "Description: " & objVar.Description _
& VBNewLine & "Name: " & objVar.Name _
& VBNewLine & "System Variable: " _
& objVar.SystemVariable & VBNewLine _
& "User Name: " & objVar.UserName & VBNewLine _
& "Variable Value: " & objVar.VariableValue
Nex

In diesem Fall wird auf die Klasse Win32_Environment zugegriffen. Der Rückgabewert ist eine Collection der verschiedenen Umgebungsvariablen. Für diese werden sehr viele Eigenschaften geliefert, die ausgelesen werden können. Damit stehen entsprechend mehr Optionen für die Verarbeitung der Umgebungsvariablen zur Verfügung. So kann beispielsweise auch der Besitzer einer Umgebungsvariablen ermittelt werden. Bild 2 zeigt die Ausgabe der Informationen.

Bild 2: Die über WMI ausgelesenen Umgebungsvariablen.
Bild 2: Die über WMI ausgelesenen Umgebungsvariablen.

Um nicht alle Variablen auszugeben, muss bei der Verarbeitung mit Abfragen gearbeitet werden. Diese können in die Schleifenbedingung oder anschließend als If-End-If-Anweisungen integriert werden.

Textdateien als Datenquelle

Eine Option ist die Verwendung von Textdateien für die Eingabe. In solchen Dateien können beispielsweise auch lange Listen von Computern aufgeführt werden. Listing 3 zeigt ein Beispiel für eine solche (einfache) Eingabedatei.

Listing 3: Eine Eingabedatei mit Servernamen
windowstest1
windowstest2
windowstest3


Diese Datei lässt sich relativ einfach verarbeiten, vor allem weil es sich um nur eine Art von Informationen handelt und daher beim Einlesen keine komplexere Analyse erforderlich ist.

Das Beispiel zeigt eine Variante, die als Grundgerüst für eigene Skripts in diesem Bereich bestens geeignet ist. Zunächst wird eine Konstante definiert, die später beim Öffnen der Datei verwendet wird und festlegt, dass sie nur zum Lesen geöffnet wird.