如何在c#中远程执行另一台PC的进程

时间:2012-05-23 18:10:04

标签: c# process local

我想在远程PC上调用进程。 以下代码适用于本地但我无法使其适用于远程PC

Process proc1 = new Process();

if (File.Exists("C:\\myApp.exe"))
{
    proc1.StartInfo.FileName = "C:\\myApp.exe";
    proc1.Start();
    proc1.Close();

}

2 个答案:

答案 0 :(得分:3)

这里也提出了类似的问题:

How to execute a command in a remote computer?

其中一个答案是使用sysinternals psexec

另一个答案是使用WMI

答案 1 :(得分:0)

我同意Seth Flowers - psexec是一个很好的方法。

-

由于您将问题标记为C#,我将添加:

如果您正在询问,因为您正在创建一个分布式系统,其中主机正在子机上生成作业,那么您可以创建一个C#主机应用程序和一个C#客户端应用程序,并使用Windows Communication Foundation(WCF)将它们链接在一起。这将为您提供一个服务类,以便与主机中的其他计算机进行通信。一旦你可以在机器之间进行通信,你可以让主持人告诉孩子“运行这个应用程序”,你可以在孩子那边使用你的流程代码。

这是一篇很好的解释这个概念的文章,我之前已经使用过它(旁注,如果你使用它运行VS作为管理员,或者metadataBehavior对象将引发异常): http://www.codeproject.com/Articles/16765/WCF-Windows-Communication-Foundation-Example