ok... this was a real pain, but here it is:

 Code:
break on

$computer = "remotePCname"

? '---- Computer ----'
$objWMIService = GetObject("winmgmts:\\" + $Computer + "\root\rsop\computer")
$GPOItems = $objWMIService.ExecQuery("Select * From RSOP_GPLink Where AppliedOrder <>'0'")

For Each $GPOItem in $GPOItems 
	$left=instr($GPOItem.GPO,'{')
	$right=instr($GPOItem.GPO,'}')+1
	$gpoid = substr($GPOItem.GPO,$left,$right-$left)
	? $GPOItem.AppliedOrder

	$colItems = $objWMIService.ExecQuery("Select * from RSOP_GPO where GUIDName='" +$GPOID+"'")
	For Each $objItem in $colItems  
		" - " + "Name: " + $objItem.Name
		;? "GUID Name: " + $objItem.GUIDName
	Next
Next
? '---- User ----'
$objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" + $Computer + "\root\cimv2")
$colProc = $objWmi.ExecQuery("Select * from Win32_Process Where Name='explorer.exe'")
For Each $oProcess In $colProc 
	$SID = $oprocess.ExecMethod_("GetOwnerSID").SID
	$User = $oprocess.ExecMethod_("GetOwner").User
 $User
	$wmiSID = Join(split($SID,"-"),"_")
Next

$objWMIService = GetObject("winmgmts:\\" + $Computer + "\root\rsop\user\"+$wmiSID)
$GPOItems = $objWMIService.ExecQuery("Select * From RSOP_GPLink Where AppliedOrder <>'0'")

For Each $GPOItem in $GPOItems 
	$left=instr($GPOItem.GPO,'{')
	$right=instr($GPOItem.GPO,'}')+1
	$gpoid = substr($GPOItem.GPO,$left,$right-$left)
	? $GPOItem.AppliedOrder

	$colItems = $objWMIService.ExecQuery("Select * from RSOP_GPO where GUIDName='" +$GPOID+"'")
	For Each $objItem in $colItems  
		" - " +  "Name: " + $objItem.Name
		;? "GUID Name: " + $objItem.GUIDName
	Next
Next
_________________________
How to ask questions the smart way <-----------> Before you ask