使用PsExec和C运行远程批处理文件#
问题描述:
我想通过使用PsExec运行远程批处理文件 - 已经位于远程计算机上,通过C#中的进程调用。我已确认所有必需的文件已经存在,但相信我的语法可能有问题,因为重定向的输出表明它找不到指定的文件。使用PsExec和C运行远程批处理文件#
PsExec运行的机器是动态的,这是myArray [0] .MachineName的值(这个没有问题)。
wsStopProcess.StartInfo.FileName = @"C:\Windows\system32\PsExec.exe";
wsStopProcess.StartInfo.Arguments = @" \\" + myArray[0].MachineName + @"D:\stopprofile.bat";
wsStopProcess.StartInfo.UseShellExecute = false;
wsStopProcess.StartInfo.CreateNoWindow = true;
wsStopProcess.StartInfo.RedirectStandardOutput = true;
wsStopProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
wsStopProcess.Start();
对似乎格式不正确的任何想法?我猜测它的反斜杠太多(或者不够)!
答
我认为最主要的问题是你在两个参数之间没有空格。
试试这个:
wsStopProcess.StartInfo.Arguments = @"\\" + myArray[0].MachineName + @" D:\stopprofile.bat";
我还要提醒你,我不能让PSEXEC工作100%,尽管尝试很多不同的东西。
答
试试这个:的
wsStopProcess.StartInfo.Arguments = @"\\" + myArray[0].MachineName + @" D$\stopprofile.bat";
因此,而不是使用:
尝试$
迹象。在调试时在上面的行上设置断点将帮助您查看确切的路径。
感谢您的回应!可悲的是,即使有空间,它也不完美。这是我的更新行:wsStopProcess.StartInfo.Arguments = @“\\”+ myArray [0] .MachineName + @“D:\ stopprofile.bat”; –