簡単に言えば...
これは機能しません:
Process p = new Process();
p.StartInfo.FileName = @"External\PsExec.exe";
string file = String.Concat(Path.Combine(Environment.CurrentDirectory,"temp"),@"\iisreset",DateTime.Now.ToString("ddMMyyyy-hhmmssss"),".txt");
p.StartInfo.Arguments = String.Format("-s -u {0}\\{1} -p {2} \\\\{3} iisreset > \"{4}\"", Domain,UserName, Password, machineIP, file);
p.StartInfo.CreateNoWindow = true;
p.Start();
p.WaitForExit();
RPC Unavailable メッセージが表示されます。
しかし、プログラムフォルダーのコマンドラインにアクセスすると、ファイル名/引数で指定したのとまったく同じように、(正しいパラメーターを使用して)これを実行します...
External\PsExec.exe -s -u [user] -p [password] \\[ip] iisreset > "[path]"
できます!C# Process で他に何か指定する必要はありますか? 何が起こっている可能性がありますか?
前もって感謝します!
EDITcmd
: FileName として/c PsExec.exe
引数の前に置くと機能します。問題は、このように常にウィンドウを表示することです。