WMI Abfragen

  • Hallo zusammen,

    ich würde gerne die eingetragenen Admins eines PCs per WMI auslesen.
    Unter VB sieht die Abfrage so aus:

    Code
    "select * from Win32_GroupUser where GroupComponent = " & chr(34) & "Win32_Group.Domain='" & strComputerName & "',Name='Administrators'" & Chr(34)


    Bereinigt:

    SQL
    SELECT * FROM Win32_GroupUser WHERE GroupComponent = "Win32_Group.Domain='PCNAME',Name='Administrators'"

    Mir ist nicht ganz klar wie ich die Klammern genau setzen muss, damit die Abfrage als ganzes an den WMI Dienst geschickt wird.

    [autoit]


    $cmpname = @ComputerName
    $wmi_obj = ObjGet("winmgmts:{impersonationLevel=impersonate}!\\" & @ComputerName & "\root\cimv2")
    $wmi_adm = $wmi_obj.ExecQuery('"SELECT * FROM Win32_GroupUser WHERE GroupComponent = "Win32_Group.Domain=' & $cmpname & ',Name='Administrators'""')

    [/autoit]

    Derzeit sieht die Fehlermeldung so aus:

    Code
    W:\***\Admins.au3 (10) : ==> Missing separator character after keyword.: 
    $wmi_adm = $wmi_obj.ExecQuery('"SELECT * FROM Win32_GroupUser WHERE GroupComponent = "Win32_Group.Domain=' & $cmpname & ',Name='Administrators'""') 
    $wmi_adm = $wmi_obj.ExecQuery('"SELECT * FROM Win32_GroupUser WHERE GroupComponent = "Win32_Group.Domain=' & $cmpname & ',Name='Administrators^ ERROR

    Vielen Dank!

    Einmal editiert, zuletzt von Lausbube (15. Mai 2013 um 19:28)

  • Die Syntaxhervorhebung und die Fehlermeldung sagen dir eigentlich schon, an welcher Stelle bei dir das Problem mit den Anführungszeichen besteht.

    So sollte es gehen:

    [autoit]

    "SELECT * FROM Win32_GroupUser WHERE GroupComponent = ""Win32_Group.Domain='" & PCNAME & "',Name='Administrators'"""

    [/autoit]