Beispiel für die Verwendung eines Automatisierungsobjekt-Skripts

Das folgende Skript stellt eine Verbindung zum Excel-Automatisierungsobjekt her, erstellt eine neue Arbeitsmappe und exportiert eine Liste der Dienste und ihres jeweiligen Status in diese Mappe. Das Skript benötigt Excel und WMI.

Hinweis

Windows Management Instrumentation ist ab Windows 2000 vorinstalliert. Unter Windows 9x und Windows NT muss WMI installiert werden. Download unter: http://go.gfi.com/?pageid=_wmi

Function Main

Dim excel As Object 'Erstellen der vom Skript benötigten Objekte

Dim book As Object

Dim sheet As Object

Dim range As Object

Dim columns As Object

Dim wmiobj As Object

Dim objswbemobject As Object

strComputer = "127.0.0.1"

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

'WMI-Objekt abrufen, mit dem verschiedene Informationen abgerufen werden können

If wmiobj is Nothing Then

echo ("Fehler 1: WMI-Objekt kann nicht erstellt werden")

Else

Set excel = CreateObject("Excel.application")

'Verbindung mit Excel-Automatisierungsobjekt herstellen

If excel is Nothing Then

Echo("Excel-Objekt kann nicht erstellt werden")

Else

'Excel-Version anzeigen

echo ("Sitzung initialisiert mit Excel-Version "&excel.version)

'Arbeitsmappe einfügen

Set book = excel.workbooks.add

'Arbeitsblatt in Arbeitsmappe einfügen

Set sheet = Book.Worksheets.add

sheet.cells(1,1) = "Dieses Arbeitsblatt wurde mithilfe eines GFI LanGuard-Skripts erstellt"

'Spaltennamen festlegen

sheet.cells(3,1) = "Dienstname"

sheet.cells(3,2) = "Status"

sheet.cells(3,3) = "Gestartet"

'Informationen zu Diensten abrufen

Set wmiinst=wmiobj.instancesof("Win32_Service")

If wmiinst is Nothing Then

echo ("Fehler 2: Informationen zu Diensten können nicht abgerufen werden")

Else

lnpos = 4

For Each objswbemobject In wmiinst

'sämtliche Dienstobjekte durchlaufen

lnpos = lnpos + 1

sheet.cells(lnpos,1) = objswbemobject.DisplayName

'Informationen zum Dienst in Excel-Arbeitsmappe eintragen

sheet.cells(lnpos,2) = objswbemobject.State

sheet.cells(lnpos,3) = objswbemobject.Started

Next

'Spalten automatisch anpassen

sheet.columns.AutoFit

'Excel-Arbeitsmappe anzeigen

sheet.application.visible = true

End If

End If

End If

End Function