WMI- ABfragen

  • VBScript

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von Mono.

    WMI- ABfragen

    Hi Scripter.

    Ich habe ein kleines Problem bzw Frage.
    Für Wmi Abfragen im stile von

    Visual Basic-Quellcode

    1. On Error Resume Next
    2. Dim strComputer
    3. Dim objWMIService
    4. Dim propValue
    5. Dim colItems
    6. strComputer = "."
    7. Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    8. Set colItems = objWMIService.ExecQuery("Select * from Win32_Directory",,48)
    9. WScript.Echo colItems.count


    Ich weiss das man über eine For Each objItem in colItems diverse Eigenschaften abfragen kann.
    (Was in diesem Falle sehr viele wären, weil komplettes Directory)
    Meine eigentliche Frage ist:
    Wieso bekomme ich keine Ausgabe in diesem Code?
    Warum funktioniert die .count Eigenschaft des colItems nicht ???
    Ich weiss das es bei anderen WMI Abfragen funktioniert, bei noch anderen auch nicht.
    Wieso ??^^

    Bzw. weiss jemand wie ich ohne die For schleife die anzahl rausbekomme ?
    Das ist meine Signatur und sie wird wunderbar sein!
    Ah habs selber rausgefunden, wens interessiert, es ist die iFlag 48 - ( ist eine Zusammensetzung aus Flag 16 und 32)
    entscheidend ist die iFlag 32 denn sie bedeutet:

    Causes a forward-only enumerator to be returned. orward-only enumerators are generally much faster and use less memory than conventional enumerators.

    Bedeutet, das jedes Element einmal durchlaufen(und auch ausgegeben werden kann), dabei werden sie aber nicht gespeichert.
    Daher läuft es schneller durch, man kann aber die .count Eigenschaft nicht verwenden.
    Bei einer Remoteabfrage wenn man aus welchen gründen auch immer die anzahl der colItems wissen möchte macht es kaum einen Unterschied ob mit oder ohne Forward-only Auflistung.
    Bei Forward-only Auflistungen kann man dann die Objekte nur manuell mitzählen:
    Mit
    For each objItem in colItems
    n=n+1
    Next

    Objekte: 3032 Zeit: 271,6016 sekunden

    Ohne Forward-Only Auflistung mit colItems.count abgerufener Anzahl:

    Objekte: 3032 Zeit: 262,5117 sekunden

    Naja, wems mal was nützt

    schönen Abend, Mono
    Das ist meine Signatur und sie wird wunderbar sein!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Mono“ ()