我正在嘗試編寫一個C#控制檯應用程序,該應用程序將通過cmd啓動runas.exe
,然後以該用戶身份運行另一個應用程序。我採取了下面列出的建議之一(並添加了一點),因爲它似乎是最有前途的。在控制檯應用程序中編寫cmd命令
Process cmd = new Process();
ProcessStartInfo startinfo = new ProcessStartInfo("cmd.exe", @"/K C:\Windows\System32\runas.exe /noprofile /user:DOMAIN\USER'c:\windows\system32\notepad.exe\'")
{
RedirectStandardInput = true,
UseShellExecute = false
};
cmd.StartInfo = startinfo;
cmd.Start();
StreamWriter stdInputWriter = cmd.StandardInput;
stdInputWriter.Write("PASSWORD");
cmd.WaitForExit();
當我啓動它要求輸入密碼前的命令本身造成那裏是一個錯誤與runas.exe
的應用程序,我敢肯定UseShellExecute = false
導致的錯誤,但如果沒有它,StreamWriter
不能正常工作,所以我不知道該怎麼辦。
您是否試過: stdInputWriter.WriteLine(「password」); ? 也許你只是沒有確認輸入? –
@JakubSzułakiewicz但我仍然需要聲明streamwriter,如果我不用'Process.StandardInput'來做,我應該怎樣聲明它? – BlueBarren