1

直接从提示执行以下语句

\\my_ip -u my_user -p my_pass -w C:\ta33 tasklist

返回预期的任务列表。但是在 C# 代码中使用相同的语句,例如

string executeCommand = "\\\\10.141.86.30 -u biebls -p 1krahsavs -w C:\\ta33 tasklist";
ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = System.IO.Directory.GetCurrentDirectory() + "\\PsExec.exe";
psi.Arguments = executeCommand;
psi.UseShellExecute = false;
psi.RedirectStandardOutput = true;
psi.RedirectStandardError = true;
Console.WriteLine("File [" + psi.FileName + "] - Args [" + psi.Arguments + "]");
Process p = new Process();
p.StartInfo = psi;
p.Start();
StreamReader outputReader = p.StandardOutput;
StreamReader errorReader = p.StandardError;
p.WaitForExit();

等了十分钟后我没有得到任何答复。谁能帮我?

4

1 回答 1

0

我很确定您的输出缓冲区已满并等待清空。人们在使用Process. 这是一些代码示例的快速浏览http://csharptest.net/321/how-to-use-systemdiagnosticsprocess-correctly/

于 2012-12-19T17:08:57.353 回答