Jump to content

vbs - wmi: Problem in der Schleife


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

Empfohlene Beiträge

Hallo Zusammen,

 

ich habe ein kleines Verständnisproblem bei folgendem Skript:

 

On Error Resume Next

arrComputers = Array("rechner1","rechner2","rechner3","rechner4")

For Each strComputer In arrComputers
  WScript.Echo
  WScript.Echo "=========================================="
  WScript.Echo "Computer: " & strComputer
  WScript.Echo "=========================================="

  wmiQuery = "SELECT Caption,Drive,Manufacturer,Name FROM Win32_CDROMDrive"
  Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
  Set colItems = objWMIService.ExecQuery(wmiQuery)

  For Each objItem In colItems
     WScript.Echo "Caption: " & objItem.Caption
     WScript.Echo "Drive: " & objItem.Drive
     WScript.Echo "Manufacturer: " & objItem.Manufacturer
     WScript.Echo "Name: " & objItem.Name
     WScript.Echo
  Next
Next

 

Rechner1 gibt brav alle CD-Laufwerke aus, genau wie Rechner2. Auf Rechner3 habe ich keine (admin)Rechte, und Rechner4 ist abgeschaltet.

 

Ich bekomme jedoch auf Rechner 3 und 4 dieselben Werte, wie von Rechner 2. Wenn ich jene Rechner einzeln mache, bekomme ich nichts zurück.

 

Frage: warum ? und bessere Frage: Gibt mir WMI irgendeinen Errorcode zurück, sodass ich sehen kann, Rechner ist aus oder Zugriff ist verweigert, oder sowas ?

 

Viele Grüße und Danke für Hints :)

Martin

Link zu diesem Kommentar

Hallo Martin,

 

so müsste die Ausgabe bei fehlenden Rechten oder ausgeschaltetem Rechner leer sein.

 

On Error Resume Next

arrComputers = Array("rechner1","rechner2","rechner3","rechner4")

For Each strComputer In arrComputers
  WScript.Echo
  WScript.Echo "=========================================="
  WScript.Echo "Computer: " & strComputer
  WScript.Echo "=========================================="

  wmiQuery = "SELECT Caption,Drive,Manufacturer,Name FROM Win32_CDROMDrive"
  Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
  Set colItems = objWMIService.ExecQuery(wmiQuery)

  For Each objItem In colItems
     WScript.Echo "Caption: " & objItem.Caption
     WScript.Echo "Drive: " & objItem.Drive
     WScript.Echo "Manufacturer: " & objItem.Manufacturer
     WScript.Echo "Name: " & objItem.Name
     WScript.Echo
  Next

  [b]Set objWMIService = Nothing
  Set colItems = Nothing[/b]

Next

 

thorgood

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

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...