特別なユーザー、ドメイン、およびパスワードを使用してプロセスを開始しています。コンソール ウィンドウを非表示にするように C# に指示しましたが、表示されます。
ここに私のコード:
Process process = new Process();
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.UseShellExecute = false;
process.StartInfo.CreateNoWindow = true;
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.StartInfo.UserName = strUsername;
process.StartInfo.Domain = strDomain;
process.StartInfo.Password = secPassword;
process.StartInfo.FileName = "PsExec.exe";
process.StartInfo.Arguments = @"/accepteula -s \\" + strServername + @"program.exe";
process.Start();
process.WaitForExit();
別のフォーラムでいくつかのヒントを見つけることができました。
ProcessStartInfo..::.UserName および ProcessStartInfo..::.Password プロパティを設定して Start(ProcessStartInfo) メソッドを呼び出すと、アンマネージ CreateProcessWithLogonW 関数が呼び出され、CreateNoWindow プロパティ値がtrue または WindowStyle プロパティの値が Hidden です。
実は、私はこの声明にあまり満足していません...
前もって感謝します。
乾杯アレックス