WMI Abfrage

  • Hallo liebe AutoIt Freunde,

    ich versuche den Inhalt einer WMI Abfrage WMIC PATH Win32_PnPEntity WHERE "Status='Error'" GET Name,Status /value in einer Variable zu speichern, leider bleibt das Ergebnisfenster leer, sieht hier jemand den Fehler?

    Zitat

    lg und schöne Woche noch

  • Du brauchst nicht mit wmic rumopern - das geht einfacher in AutoIt:

    AutoIt
    Global $oWMI = ObjGet("winmgmts:\\localhost\root\CIMV2")
    
    For $oEntity in $oWMI.ExecQuery('SELECT Name, Status FROM Win32_PnPEntity WHERE Status="Error"', "WQL", 48)
        ConsoleWrite($oEntity.Name & @TAB & $oEntity.Status & @CRLF)
    Next
  • N.B:

    Mit Scriptomatic kannst Du Dir AutoIt Code für WMI Abfragen generieren lassen und auch die Ausgabe (Console, MsgBox, Array) bestimmen.

  • ok stimmt, hatte sie danach, hät ich drauf kommen können. Nur ich hätte die ganz gerne alle in einer MessageBox, das geht bestimmt nicht so mit dieser Methode.

    lg und einen schönen Tag noch

  • Wie water schon anmerkte, ist Scriptomatic das Tool der Wahl! Dann passiert

    leider zeigt er mir nur den ersten gefundenen Eintrah sn mit

    das auch nicht....

    Ich hatte in Scriptomatic noch einen Filter(button) integriert, damit man nicht ellenlang durch die Liste scrollen muss.

    Scriptomatic.au3

    Übrigens kann man auch, nachdem man auf den Pfeil im rechten Dropdown geklickt hat und die Liste sieht, ein Leerzeichen eingeben und es wird ein "leeres" Abfragengerüst erstellt! Die (SQL)Abfrage muss dann nur noch ergänzt werden...

    Die erstellten Abfragescripte sind natürlich ohne Scriptomatic lauffähig, sie befinden sich als Datei im TEMP-Ordner und werden von Scriptomatic nach deren Ausführung gelöscht.

    Um weitere Ideen in bestehende Scripte einfließen zu lassen und diese umzuschreiben und auf eigene/andere Bedürfnisse anzupassen, dafür ist ja ein Forum bzw. die Community da!

    Auch BugFix hat sich mit dem Thema beschäftigt!

    Man muss also nicht (auch wenn es ab und zu Spass macht^^) das Rad neu erfinden!

  • Nur ich hätte die ganz gerne alle in einer MessageBox, das geht bestimmt nicht so mit dieser Methode.

    Doch geht schon. Du musst dir halt deinen Ausgabestring über die Schleife schrittweise aufbauen: