通过指定/冒充其他帐户来调用Process.GetProcesses?

时间:2012-05-14 06:38:15

标签: c# .net sysinternals

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

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

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

2 个答案:

答案 0 :(得分:0)

我以前做过的事情是使用类似this article中描述的内容。

using (new Impersonator("user", "domain", "pass"))
{
   Process[] allRemoteProcesses = Process.GetProcesses("myRemoteComputer");
   // Rest of code...
}

另一种方法是使用WMI并查询过程,例如here所述的过程。

答案 1 :(得分:0)

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