我尝试使用 WMI 获取有关 Process Owner 的一些信息。我试图运行这个脚本:
import win32com.client
process_wmi = set()
strComputer = "."
objWMIService = win32com.client.Dispatch("WbemScripting.SWbemLocator")
objSWbemServices = objWMIService.ConnectServer(strComputer,"root\cimv2")
process_list = objSWbemServices.ExecQuery("Select * from Win32_Process")
for process in process:
owner = process.GetOwner
if owner != 0:
print('Access denied')
else:
print('process: ',process.Name, 'PID: ', process.ProcessId, 'Owner: ', owner)
当然,我明白了owner = 0 (Successful Completion)
当我尝试调用process.GetOwner()
时,我收到此错误:TypeError: 'int' object is not callable
如何使用此方法而不会出错?可能有什么参数或标志?
我尝试实现和使用这种方法, here实现和使用此方法,但我无法将代码转换为我的情况并获得流程所有者。=(
或者可能有人知道另一种方法,如何获取有关进程所有者的信息。可能与 WinApi 方法有关?
谢谢你的帮助!