Jump to content

VBS - Objekte überprüfen und leeren


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Geschrieben

Hallo Zusammen,

 

ich stehe gerade mal wieder auf dem bekannten Schlauch. Ich habe ein Objekt das ich in einer Schleife erneut befüllen möchte.

 

Beispiel für das Objekt; lokale Administratoren auslesen:

 

Set objComputer = GetObject("WinNT://" & strComputer & ",computer")
Set objGroup = objComp.GetObject("Group", strGroup)

 

In einer Schleife wird die Variabel "strComputer" immer durch einen anderen Rechner ersetzt. Jetzt kann es ja mal sein das der Computer aus ist wenn das Script läuft, daher mache ich eine Abfrage:

 

If IsEmpty(objGroup) then

    msgbox "Computer ist aus!"

End if

 

Das klappt nur wenn der erste PC in der Liste aus ist, weil dann bleibt das Objekt leer. Jetzt prüft er den zweiten Computer, dieser ist an. Der dritte ist wieder deaktiviert, dann überspringt er den "IsEmpty" Part. Ich habe es mit "Set objGroup = Nothing" probiert, aber das klappt nicht.

 

Jemand eine Idee? Wenn möglich nicht mit "If Err.Number..."

 

Danke im voraus!

Geschrieben (bearbeitet)

und wenns um mal mehr als 3 Rechner geht, braucht das Skript ziemlich lang, wenn es für jeden Verbindungsversuch auf einen ausgeschalteten Rechner erst auf den Timeout warten muss.

 

Die wmi-Methode win32_pingstatus Win32_PingStatus Class (Windows) ist genau dafür da, um vor dem Binden die Erreichbarkeit zu prüfen.

Der StatusCode (siehe MSDN) zeigt dir ausserdem frei Haus zusätzlich noch an, warum evtl. ein Ping gescheitert ist.

 

Mit

objGroup = Nothing 

(ohne set) solltest du eigentlich das Objekt löschen können

 

 

cu

blub

bearbeitet von blub
Geschrieben

Merci! Nun klappt es einwandfrei. Das mit dem Timeout ist auch ein guter Tipp, denn es geht um mehr als 600 Rechner ;-) Baue ich nacher gleich noch mit ein.

 

Ich habe es nun mit If "err.number <> 0" gelöst.

Danke!

Geschrieben

Moin,

 

Selbstverständlich gebührt dir die alleinige Ehre! ;)

 

Off-Topic:

so ist's recht. Stehen Sie bequem. ;)

 

Genau betrachtet, müsste man dann noch Johannes Endres von der c't erwähnen, der mich auf das Problem aufmerksam gemacht hat und auf dessen Hinweis hin ich die Lösung gebaut habe. Aber das würde vielleicht zu weit führen. Ist ja nicht so, dass wir die ersten wären, die das machen. :cool:

 

Gruß, Nils

Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...