Häufige Fehler und Fallstricke

VBScriptDie Visual Basic Scripting-Sprache ist eine höhere Programmiersprache von Microsoft®. kennt zwei Arten von Variablen:

Variablentyp Beschreibung
Einfach Variablen sind echte Typen wie Integer, Boolean, String.
Objekte Dies sind zusammengesetzte Elemente, deren Funktionen über die Schnittstelle von Automatisierungsobjekten bereitgestellt werden.

Automatisierungsobjekttypen müssen als Objekte deklariert werden, bevor diesen Werte zugewiesen werden.

Wichtig

Es wird dringend empfohlen, allen deklarierten Variablen und/oder Objekten einen Wert zuzuweisen.

Beispiel

Function Main

'zu verwendendes Objekt deklarieren

Dim nameStr As String

'der Variable einen Wert zuweisen

nameStr = "Dies ist eine Testzuweisung von Text"

'Ergebnis im Scanner-Aktivitätsfenster der Zuweisung anzeigen

echo nameStr

'Ergebnis zurückgeben

Main = true

End Function

Das folgende Skript enthält ein etwas komplexeres Beispiel, bei dem die auf dem Zielcomputer installierten Dienste aufgelistet werden (localhost = 127.0.0.1). Kopieren Sie den folgenden Text, fügen Sie ihn im Script DebuggerEin GFI LANguard-Modul, mit dem Sie mithilfe einer VBScript-kompatiblen Sprache eigene Skripte erstellen und auf Fehler untersuchen können. ein, und führen Sie ihn aus (F5). Im Debug-Fenster wird eine Liste der auf dem lokalen Computer installierten Dienste angezeigt.

Function main

'Erforderliche Objekte deklarieren

Dim wmi As Object

Dim objswbemobject As Object

'Benötigte andere Variablen deklarieren

Dim strComputer As String

Dim cr As String

strComputer = "127.0.0.1"

'Wagenrücklauf

cr = Chr(13) + Chr(10)

'Hook für das wmi-Objekt

Set wmi = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

'Überprüfen, ob Hook erfolgreich erstellt wurde

If wmi is Nothing Then echo ("Fehler 1")

'Service-Instanz von wmi zurückliefern

Set wmiinst=wmi.instancesof("Win32_Service")

'Überprüfen, ob Instanz verfügbar ist

If wmiinst is Nothing Then echo ("Fehler 2")

'Alle Instanzen durchlaufen

For Each objswbemobject In wmiinst

echo("Service-Name= ")

'Services anzeigen

echo(objswbemobject.DisplayName+cr)

Next

End Function

Hinweis

Wenn Sie versuchen, ein Automatisierungsobjekt zu verwenden, ohne es zuvor zu deklarieren, schlägt die Kompilierung des Skripts fehl. Stellen Sie sich als Beispiel den gleichen Code vor, jedoch ohne vollständige Deklaration der Objektvariable „wmi“. Wenn Sie versuchen, das Skript auszuführen, werden sofort eine Fehlermeldung und ein Hinweis auf die genaue Zeile angezeigt, in der der Fehler auftrat:

Function main

Dim wmi 'WARNING : missing “as object”

Dim objswbemobject As Object

End Function