如何使用PowerShell获取进程的启动帐号?

How to use PowerShell get the start up account of a process?

在 windows 上,我可以使用 runas 到 运行 应用程序作为另一个帐户(不是您目前登录的帐户),如下所示:

runas /netonly /user:some_domain\account "utility.exe"

如何从 PowerShell 获取此 some_domain\account?我检查了 Get-Process 和 win32_process WMI class 但没有发现任何有用的东西。


更新

回复@briantist 的回答: 我对@briantist 的回答结果有些困惑。我使用本地帐户(我的计算机不在域中)和 runas 实用程序(SQL Server management studio aka SSMS)作为域帐户登录到我的计算机。当我 运行 @briantist 提供的脚本时,结果只显示 SSMS 运行 在我的本地帐户而不是域帐户上运行。但在 SSMS 中,我可以使用函数 suser_sname() 来询问服务器我是谁,结果是 some_domain\account。这对我来说有点奇怪。这是设计使然还是我哪里错了?

Get 进程有一个 -IncludeUserName 开关:

get-process -IncludeUserName

专门针对utility.exe:

get-process utility -IncludeUserName

Tony Hinkle 的回答 (+1) 很好,也很简单,但确实需要提升。

要以非特权用户身份执行此操作,您可以使用 CIM:

Get-CimInstance Win32_Process -Filter "name='utility.exe'" | Invoke-CimMethod -MethodName GetOwner

如果你可以提升,我推荐其他答案。