0

可能重复:
System.Diagnostics.Process.Start 一个针对不同域的进程

有关我正在尝试做的事情的背景,您可能需要查看:System.Diagnostics.Process.Start a process against a different domain

基本上,即使它“看起来”像 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,并且由于从未捕获过密码,因此无法尝试连接到D b。我尝试运行上面的命令以及首先运行 cmd.exe 然后将命令写入进程输入流但无济于事。如何让它接受我的输入,然后等待我读取输出并用密码响应?我觉得这很莫名其妙

4

0 回答 0