John C. Posted March 21, 2010 Posted March 21, 2010 (edited) I am trying to make a generic function for WMI query by substituting the property's name using a variable. However, AutoIT3 always returns syntax error. The problem is how to let autoit treats '.' differently. WMIQuery("CIMV2","Win32_PerfFormattedData_TermService_TerminalServices","TotalSessions,ActiveSessions") Func WMIQuery($NameSpace,$path,$Properties) Local $output $Properties = StringSplit($Properties, ',') $objWMI = ObjGet("winmgmts:{impersonationLevel=Impersonate}!\\localhost\Root\" & $NameSpace) If Not IsObj($objWMI) Then ConsoleWrite("Error accessing name space" & @LF) Exit EndIf $objCol = $objWMI.ExecQuery("Select * from " & $path) For $obj In $objCol For $i = 1 to $Properties[0] $output = $obj.TotalSessions ;This line works ;$output = ($obj.$Properties[$i]) ;cause syntax error ;$output = ($obj & '.' & $Properties[$i]) ;No return. How to make this line work? ;debug ConsoleWrite($Properties[$i] & @LF) Next Next ConsoleWrite($output & @LF) EndFunc Edited March 21, 2010 by John C.
PsaltyDS Posted March 22, 2010 Posted March 22, 2010 I think you might be looking for Execute(): $output = Execute("$obj." & $Properties[$i]) Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now