私がやろうとしていることの背景については、System.Diagnostics.Process.Startプロセスを別のドメインに対して確認することをお勧めします。
基本的に、ProcessStartInfoを使用すると別のドメインアカウントに対して実行できるように見えますが、少なくとも私のシナリオではそうではありません。したがって、次の試みは、プログラムで次のバッチコマンドを模倣し、コンソールに対して読み取り/書き込みを行ってパスワードを提供することでした(cmd行から次のコマンドを実行すると、「SOMEDOMAIN \ SomeUserNameのパスワードを入力してください」というプロンプトが表示され、待機します。入力すると、パスワードを入力すると、正しいドメインアカウントとしてSSMSが起動し、すべてが正常に機能します
RUNAS /user:SOMEDOMAIN\SomeUserName /netonly "C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\Ssms.exe"
しかし、何らかの理由で私は理解できません。C#からまったく同じコマンドを実行すると、パスワードの入力を待つことはありません。上記のコマンドを送信するとすぐにSSMSが起動し、パスワードがキャプチャされなかったため、に接続しようとして失敗します。 db。上記のコマンドを実行し、最初にcmd.exeを実行してから、プロセス入力ストリームにコマンドを書き込んでみましたが、役に立ちませんでした。入力を受け入れてから、出力を読み取ってパスワードで応答するまで待つにはどうすればよいですか?私はこの不可解なものを見つけます