Guten Abend zusammen,
ich habe ein Problem mit einer Funktion, die ich implementieren möchte.
Über WMI soll die ProcessID, der Processname und der Processowner ausgelesen werden.
Processname und ProcessID wird zurückgegeben, jedoch für den Owner wird mir der Wert 0 (Null) zurückgegeben.
Was mache ich falsch?
Kann mir jemand bei der Lösung helfen?
Vielen Dank im Voraus.
Axel
Hier mein Quellcode:
[autoit]
Func MyPID()
$COMPUTERNAME = EnvGet ("COMPUTERNAME")
$sUsername=EnvGet ("USERNAME")
$sUserDomain=EnvGet ("USERDOMAIN")
Dim $nPID, $nName, $nOwner
Dim $objItems
Dim $objWMI
$wbemFlagReturnImmediately = 0x10
$wbemFlagForwardOnly = 0x20
$objWMI = ObjGet("winmgmts:\\" & $COMPUTERNAME & "\root\CIMV2")
$objItems = $objWMI.ExecQuery('Select * from Win32_Process Where Name = "ALG.exe" Or Name = "' & @ScriptName & '"', 'WQL', $wbemFlagReturnImmediately + $wbemFlagForwardOnly)
If IsObj($objItems) Then
For $objItem In $objItems
$nPID = $objItem.ProcessId
$nName = $objItem.Name
$nOwner = $objItem.GetOwner
ConsoleWrite("PID: " & $objItem.ProcessId & @CRLF)
ConsoleWrite("PROCESS: " & $objItem.Name & @CRLF)
ConsoleWrite("OWNER: " & $nOwner & @CRLF)
Next
EndIf
Return $nPID
Return $nName
Return $nOwner
EndFunc