有人可以帮我解决这个问题吗?远程复制本地文件,执行并返回输出
我已经在本地获得了一组可执行文件,并且需要远程运行这些文件,并从它们返回输出。我有远程计算机登录凭据。你能不能让我知道是否有一种方法可以在C++,C#/ powershell/WMI等程序中执行此操作?
有人可以帮我解决这个问题吗?远程复制本地文件,执行并返回输出
我已经在本地获得了一组可执行文件,并且需要远程运行这些文件,并从它们返回输出。我有远程计算机登录凭据。你能不能让我知道是否有一种方法可以在C++,C#/ powershell/WMI等程序中执行此操作?
你应该看看使用两种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产品。如果你想重定向输出,你只需将它存储在一个字符串对象中。
你的问题是ambigue。谁运行这些文件?有人来自远程计算机,或者您需要将它们上传到某处并从远程计算机执行?这些可执行文件产生什么样的输出? (文件,控制台输出) – Steve
@Pete,我尝试使用Invoke-Command的Powershell远程处理,但是这不能将文件复制到远程机器。 – Hem
@Steve,我的程序必须将exe/bat文件复制到远程机器,执行它并将结果返回到本地机器。 – Hem