C#启动PsExec后在远程计算机上运行批处理文件

C#启动PsExec后在远程计算机上运行批处理文件,c#,file,batch-file,psexec,C#,File,Batch File,Psexec,基本上,我正在尝试运行在远程机器上复制的批处理文件,顺便说一句,这是我第一次尝试编码,所以请友好一点,但如果你想批评它,我仍然在学习语言,不得不花3个小时才能走到这一步,感谢上帝谷歌,哈哈 代码: 提前感谢。尝试使用/C运行CMD.exe。从CMD.exe帮助: /C执行字符串指定的命令,然后终止 需要将/C追加到psExec的内容中: System.Diagnostics.Process.Start("CMD.exe", "/C " + psExec); 我相信到时候你会得到预期的结果。如果

基本上,我正在尝试运行在远程机器上复制的批处理文件,顺便说一句,这是我第一次尝试编码,所以请友好一点,但如果你想批评它,我仍然在学习语言,不得不花3个小时才能走到这一步,感谢上帝谷歌,哈哈

代码:


提前感谢。

尝试使用/C运行CMD.exe。从CMD.exe帮助:

/C执行字符串指定的命令,然后终止

需要将/C追加到psExec的内容中:

System.Diagnostics.Process.Start("CMD.exe", "/C " + psExec);
我相信到时候你会得到预期的结果。如果没有,您可能希望确保
psexec.exe
位于PATH环境变量中的目录中

此外,您可能有兴趣研究如何指定可为流程执行设置的其他不同参数。

来自PSExec帮助:

-c将指定的程序复制到远程系统,以便 执行。如果省略此选项,则应用程序 必须位于远程系统上的系统路径中

使用该标志使PSExec将要执行的批处理文件复制到远程系统并运行它。您不必编写额外的代码来实现这一点

基本上你想做:

psexec \\server cmd.exe /c file_you_want_to_run.bat

+1.良好的态度。希望我了解psexec,这样我就能帮助你了。风格建议:你可以使用SystemDiagnostics添加
使用System.IO在顶部,只需使用
Process.Start(“CMD.exe”,psExec)
File.Copy(fileToCopy,newLocation)
文件。删除(新文件)之后。我非常感谢您的所有回答,对于\\run batch file using psexec部分,我如何让它执行复制到远程计算机的批处理文件(字符串主机名)?我认为您无法在外部计算机上执行代码。您可以从您的网络计算机上执行批处理文件,但不能反过来执行。这将是一个严重的安全漏洞。这是正确的。您可能必须使用psexec的用户名/密码标志,但不需要编写任何自己的代码来实现这一点。
psexec \\server cmd.exe /c file_you_want_to_run.bat