通过指定/模拟另一个帐户来调用 Process.GetProcesses?

Posted

技术标签:

【中文标题】通过指定/模拟另一个帐户来调用 Process.GetProcesses?【英文标题】:Call Process.GetProcesses by specifying/impersonating another account? 【发布时间】:2012-05-14 06:38:15 【问题描述】:

通过Process.GetProcesses,我们可以列出远程计算机中正在运行的进程,例如

Process [] allRemoteProcesses = Process.GetProcesses("myRemoteComputer");

但是,这似乎取决于我的帐户的许可。它抛出异常“无法连接到远程机器”。如果正在运行的用户无权访问远程计算机。我可以在检查进程时指定另一个由 .NET 使用的帐户,类似于PsList 中的-u-p 开关吗?

【问题讨论】:

【参考方案1】:

我之前所做的是使用类似于this article 中描述的内容。

using (new Impersonator("user", "domain", "pass"))

   Process[] allRemoteProcesses = Process.GetProcesses("myRemoteComputer");
   // Rest of code...

另一种方法是使用 WMI 并像here 中描述的那样查询进程。

【讨论】:

【参考方案2】:

对于同样的问题,在远程注册表中打开远程注册表服务对我有用!

【讨论】:

以上是关于通过指定/模拟另一个帐户来调用 Process.GetProcesses?的主要内容,如果未能解决你的问题,请参考以下文章

使用 python 的模拟 patch.object 更改在另一个方法中调用的方法的返回值

更改 iOS 模拟器 iCloud 帐户

将 BigQuery 项目克隆到另一个帐户

C# Winform 模拟无法正常工作

如何模拟另一个文件中的返回值?

无法在 Xcode 的 iphone 模拟器中输入密码来创建帐户