c# - 尝试使用 psexec (c#) 在远程运行 .exe 时出现问题?

标签 c# exe psexec

大家好, 我正在尝试在远程计算机上运行 exe 文件(不是从远程计算机,而是在远程计算机上)。

我有非常简单的代码如下:

ProcessStartInfo info = new ProcessStartInfo("C:\\PsTools");
info.FileName = "psexec \\\\" + machine.Name + "\\C\\Program Files\\test.exe";
info.RedirectStandardOutput = true;
info.UseShellExecute = false;
Process p = Process.Start(info);

当尝试运行此代码时,我收到“系统找不到指定的文件”错误。

  1. 指定目录下有一个名为“test.bat”的文件。
  2. 远程计算机位于同一域中,并且 C 文件夹是共享的(我是管理员)。
  3. 我已安装 PsTools 并将其配置为环境变量。
  4. 我尝试了各种代码(例如,如果我不在 ProcessStartInfo 构造函数和 FileName 属性上使用“psexec”,bat 文件将在本地计算机而不是远程计算机上运行...),但没有任何结果有效!

有什么想法吗?

最佳答案

我的猜测是它找不到 psexec,因为您已将 UseShellExecute 设置为 false。尝试提供 psexec.exe 的完整路径。

您还应该将 FileName 属性设置为您要启动的文件,并将 Arguments 属性设置为命令行参数,像这样:

ProcessStartInfo info = new ProcessStartInfo("C:\\PsTools");
info.FileName = @"c:\whatever\psexec.exe";
info.Arguments = @"""\\" + machine.Name + @"\C\Program Files\test.exe""";
info.RedirectStandardOutput = true;
info.UseShellExecute = false;
Process p = Process.Start(info);

请注意,我Arguments属性中添加了双引号,这样它就不会因为“Program Files”有空格而被分成两个参数就在其中。

关于c# - 尝试使用 psexec (c#) 在远程运行 .exe 时出现问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5535230/

相关文章:

c# - 发送到短信电子邮件地址的多个 sendgrid 电子邮件出现故障

c# - 使用来自 C# byteArray 的 javascript 显示图像

python - 使用 Python 运行带参数的可执行文件

javascript - 将按钮绑定(bind)到键盘按钮和声音

c# - 如何使用 OpenGL 制作自定义顶点格式

c# - 如何从 C#.net 传递包含\n 和\t 的长文本的 javascript 参数

ubuntu 12.04下使用cx-freeze将Python脚本写入Windows exe文件

c# - 如何确定退出代码来自哪里?

php -> shell_exec() -> psexec -> 我的可执行链失败

windows - psExec 的密码不起作用,但密码标志的空字符串不起作用