これは、psExec を使用したリモート インストールに現在使用しているコマンドです。
psExec \\MyRemoteComputer -s -c MyInstallationFile.exe /q
コマンド プロンプト ウィンドウでこのコマンドを発行すると、正常に動作します。MyRemoteComputer にアクセスできない場合は、エラーが返されます。その後、「echo %errorlevel%」で終了コードを確認すると、正しい終了コードである53が返ってきます。
このようにProcessを使用してC#でコーディングしました..
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = ".....psExec.exe";
startInfo.WorkingDirectory = ".....";
startInfo.Arguments = @"\\MyRemoteComputer -s -c MyInstallationFile.exe /q";
startInfo.UseShellExecute = false;
startInfo.RedirectStandardOutput = true;
startInfo.RedirectStandardError = true;
startInfo.CreateNoWindow = true;
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
Process proc = Process.Start(startInfo);
....
proc.WaitForExit();
Console.WriteLine(proc.ExitCode);
それは正常に動作します..しかし..ExitCodeをチェックしたとき(明らかに、myRemoteComputerに到達できない場合)、53以外の6でした。 6 ではなく 53 の値を取得できますか?
私はいくつかのことを試しました..
- cmd /c psExec.exe ....
- バッチファイルを作成し、そのバッチファイル内のファイルとして %errorlevel% を出力します...次に、このバッチファイルを ProcessStartInfo で使用しました....
- Environment.GetEnvironmentVariable
それらのどれもまったく機能しませんでした...コードで目的の戻り値をまったく取得できません...必要な値を取得する方法は本当にありませんか??
前もって感謝します。