在Windows上,我可以使用runas
将应用程序作为另一个帐户运行(不是您当前登录的帐户),如下所示:
runas /netonly /user:some_domain\account "utility.exe"
如何从PowerShell获取此some_domain\account
?我已经检查了Get-Process和win32_process
WMI类,但没有找到任何有用的东西。
回复@briantist的回答:
我对@briantist的回答结果有点困惑。我使用本地帐户(我的计算机不在域中)和runas
实用程序(SQL Server管理工作室,也称为SSMS)作为域帐户登录到我的计算机。当我运行@briantist提供的脚本时,结果只显示SSMS正在我的本地帐户上运行而不是域帐户。但在SSMS中,我可以使用函数suser_sname()
向服务器询问我是谁,结果是some_domain\account
。这对我来说有点奇怪。这是设计还是我错了?
答案 0 :(得分:2)
Get-process有一个-IncludeUserName开关:
get-process -IncludeUserName
专门针对utility.exe:
get-process utility -IncludeUserName
答案 1 :(得分:1)
Tony Hinkle的答案(+1)非常棒,非常简单,但确实需要提升。
要以非特权用户身份执行此操作,您可以使用CIM:
Get-CimInstance Win32_Process -Filter "name='utility.exe'" | Invoke-CimMethod -MethodName GetOwner
如果你能提升,我建议另外给出答案。