Doesn't WMIQuery2 already do this?

code:
? WMIQuery2("Processes on","Win32_Process")

FUNCTION WMIQuery2($what,$where,)
$wmi = GetObject("winmgmts:{impersonationLevel=impersonate}!//" + @wksta + "/root/cimv2")
$list = ""
$objs = $wmi.instancesof($where)
for each $obj in $objs
$list = $list + $obj.description + chr(13) + chr(10)
next
$list=Left($list, Len($list))
?$what +" "+ @wksta + chr(13) + chr(10) + $list
ENDFUNCTION