【发布时间】:2017-07-31 06:56:15
【问题描述】:
我正在尝试从本地计算机 (Windows 7) 远程重启 iis (Windows Servr 2012)。命令行中的以下命令无法重新启动 IIS;
iisreset servername /restart
但是当我在命令行中尝试时,下面的命令可以正常工作。
psexec iisreset \\servername /restart
现在的问题是当我在 C# 中尝试以下代码时,
Process process = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.FileName = "cmd.exe";
startInfo.Arguments = "\C psexec iisreset \\servername /restart";
startInfo.RedirectStandardOutput = true;
startInfo.UseShellExecute = false;
process.StartInfo = startInfo;
process.Start();
// capture what is generated in command prompt
var output = process.StandardOutput.ReadToEnd();
如果我在上面的代码中给出任何其他参数,比如“ipconfig”,它会给我预期的输出。但是当我尝试使用 psexec 时,它会给出空输出。但是在命令提示符下尝试时效果很好。
我还尝试在文件名中使用“psexec.exe”并在参数中删除“\C psexec”。但仍然没有运气。
请有人帮我解决这个问题吗?
提前致谢。
【问题讨论】:
-
将 startInfo.Arguments = "\C .... 更改为 startInfo.Arguments = @"\C.... 参见 msdn.microsoft.com/en-us/library/aa691090(v=vs.71).aspx
-
感谢您的回复。我仍然收到“系统找不到指定的文件”输出,但不是预期的输出。