2013-01-15 43 views
2

有人可以帮我解决这个问题吗?远程复制本地文件,执行并返回输出

我已经在本地获得了一组可执行文件,并且需要远程运行这些文件,并从它们返回输出。我有远程计算机登录凭据。你能不能让我知道是否有一种方法可以在C++,C#/ powershell/WMI等程序中执行此操作?

+0

你的问题是ambigue。谁运行这些文件?有人来自远程计算机,或者您需要将它们上传到某处并从远程计算机执行?这些可执行文件产生什么样的输出? (文件,控制台输出) – Steve

+0

@Pete,我尝试使用Invoke-Command的Powershell远程处理,但是这不能将文件复制到远程机器。 – Hem

+0

@Steve,我的程序必须将exe/bat文件复制到远程机器,执行它并将结果返回到本地机器。 – Hem

回答

2

你应该看看使用两种PSTools结合在一起的C#处理类。 PSTools允许你发起进程远程机器。

一个例子: -

**编辑**

在远程机器上运行的批处理文件的一个例子: -

// Create a New Process Object. 
Process p = new Process(); 

//Assign the file you wish to execute. 
p.StartInfo.FileName = "C:\\Utilities\\psexec.exe"; 

// We don't want a window creating for this task 
p.StartInfo.CreateNoWindow = true; 

// We don't want to use the operating system shell.       
p.StartInfo.UseShellExecute = false; 

// Here we set the argument to fire on the remote machine that will launch the Batc File. 
p.StartInfo.Arguments = "\\\\" + RemoteMachineName + " C:\\YourBatFile.bat"; 

// Now to Start the Process. 
p.Start(); 

// If you want to wait until the Process before moving on 
p.WaitForExit(); 

这应该给你前进的理念与其他任务。它不仅仅用于打开文件。您可以像使用WMI一样使用它来Instll /卸载MsiInstaller产品。如果你想重定向输出,你只需将它存储在一个字符串对象中。

+0

如何使用此文件将文件复制到远程机器? – Hem

+0

请参阅我的更新。这是一个非常快速和容易的事情。我希望这有帮助。 – Derek

+0

谢谢。我会试试这个。 – Hem

相关问题