私はcmdでrunas.exe
を起動し、そのユーザーとして別のアプリケーションを実行するC#コンソールアプリケーションを作成しようとしています。私は、以下に挙げた提案のうちの1つをとりました(少し追加しました)。コンソールアプリケーションに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しかし、私はまだストリームライターを宣言する必要があり、私は 'Process.StandardInput'でそれをしなければ何を宣言すればいいのですか? – BlueBarren