获取进程所有者的用户名/ SID - Powershell / Python

时间:2017-01-26 22:27:39

标签: python powershell process

我希望得到 JUST 进程所有者的用户名,而不是列表,数组或表。我完全需要它,所以当我将输出存储在变量中时,它是 ONLY 用户名。 (SID而不是用户名也足够了)这必须在Powershell 2.0或Python 2中工作。*。我仍然对powershell和python都很新,所以非常感谢工作示例,如果有帮助,explorer.exe是我想找到所有者用户名的过程。另外,我需要在SYSTEM上下文中运行作为答案提供的命令/脚本。(你可以完全在python中提供你的答案,或者完全在powershell中提供你的答案,这对我正在做的事情无关紧要)

P.S。仅限Windows:D

2 个答案:

答案 0 :(得分:1)

Python的psutil似乎是一个很好的选择:

import psutil

pid = 1
username = psutil.Process(pid).username

print "Process {} is owned by {}".format(pid, username)

在Linux上,结果是:

Process 1 is owned by root

答案 1 :(得分:1)

我知道,上面接受了答案,但供将来参考:

Get-WmiObject -Class Win32_Process -Filter 'Name = "explorer.exe"' | ForEach-Object { $_.GetOwner() }