3

どうやら PsExec が動作しているようです。このコードは機能します。実行すると、エラーは返されません。しかし、出力を返すのは SOMETIMES だけであり、出力を返すときは常に ~ 最初の行です。また、ipconfig の最初の行は「Windows IP Configuration」で、エラー ボックスには「ipconfig returned with the error code 0」と表示されます。REMOTEPC をローカル IP に置き換えると実行され、cmd が短時間フラッシュして情報が表示されます。それでうまくいきます。

その理由は、PsExec を実行した後、「終了」しないためだと思います。したがって、WaitForExit は発生しません。コマンド ウィンドウから X をクリックすると、ボックスが表示されます。言及された出力、または空白の場合があります。

しかし、なんらかの理由で全体を出力することはありません! 最後まで読むことはありません。

 private void button1_Click(object sender, EventArgs e)
    {
        Process p = new Process();
        p.StartInfo.FileName = @"C:\PsExec.exe";
        p.StartInfo.Arguments = @"\\REMOTEPC -u USER -p PASS -s ipconfig /all";
        p.StartInfo.UseShellExecute = false;
        p.StartInfo.RedirectStandardOutput = true;
        p.StartInfo.RedirectStandardError = true;
        //p.StartInfo.RedirectStandardInput = true;

        p.Start();


        string output = p.StandardOutput.ReadToEnd();

       //Tried this method of getting the output too
       // while (!p.HasExited)
        //{
         //   output += p.StandardOutput.ReadToEnd();
       // }

        string error = p.StandardError.ReadToEnd();

        p.WaitForExit();

        MessageBox.Show(output);
        MessageBox.Show(error);


    }
4

0 に答える 0