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

Geschrieben

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

Geschrieben

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

Geschrieben

danke thorgood, mit der setting tuts. :)

 

tja, hätte man auch selber drauf kommen können, dass da noch werte vom vorigen durchlauf drinstehen ;) ... hoffen wir, dass mir das nächstes Mal nimmer passiert.

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...