Explorer.exe should be running in the context as the user you are looking for. Please try this and see if works for you. I would appreciate you replying with your results.
? GetProcessOwner ("explorer.exe" )
Function GetProcessOwner($Exename , optional $remotepc )
dim $sc ,$processes ,$process
if $remotepc =""
$remotepc ="."
endif
$sc = CreateObject ("ScriptControl" )
$sc.language = "VBScript"
$Processes = GetObject ("winmgmts:{impersonationLevel=impersonate}!\\" + $remotepc +
"\root\cimv2" ).ExecQuery ("Select * from Win32_Process where Name='" + $exename + "'" )
For Each $Process in $Processes
$sc.addobject ('vbProcess' ,$Process )
$sc.addcode ('Return = VbProcess.GetOwner(strNameOfUser)' )
$sc.run
$GetProcessOwner =$sc.codeobject.strNameofUser
next
Endfunction