このトピックに関する上記の質問のいずれかがこの問題の回答であるとは思われません。私はリモートexeファイルを実行するためにpsexecを使用します。私はコマンドラインで実行すると、exeファイルの出力を取得しています。 psexec.exe \\machine C:\somename.exe
。
私はシャープなプロセス実行を使用すると、ハングするか、出力をリダイレクトしません。いくつかのexeのタイムアウトのためにいくつかのリダイレクトされた標準出力は空で、Exeはコード0で終了しました。出力をキャプチャする方法はありますか?PsExec v 1.98出力リダイレクトの問題
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName =GetPsExecPath();
startInfo.Arguments = arguments;
Debug.WriteLine(arguments);
startInfo.UseShellExecute = false;
startInfo.RedirectStandardError = true;
startInfo.RedirectStandardOutput = true;
startInfo.CreateNoWindow = true;
Process process = new Process();
process.StartInfo = startInfo;
process.Start();
process.WaitForExit();
error = process.StandardError.ReadToEnd();
output = process.StandardOutput.ReadToEnd();
Debug.WriteLine(error);
Debug.WriteLine(output);
process.close();
編集:私たちがReadToEndを(使用している場合、デッドロックにつながるかもしれwhtever SOLN だから問題は、主原因であるPSEXECは、標準エラー出力、したがって、我々はそれらを読んでいるために、他の多くのものを投げます) 。したがって、BeginOutputReadLineを使用すると、チャームのように機能します!
psexecの実行に使用するコードを表示します。 –
また、出力とエラーをリダイレクトして実行しないと、コード0で終了します。リダイレクトすると、これらのpblmsが発生します。 – sriram
、コマンドラインで実行するとデータが返されますか?プログラムで渡すのと同じ引数を使用していますか? –