Я пытаюсь создать приложение, которое будет программно входить в систему 10 пользователей с помощью RDP. Цель состоит в том, чтобы автоматически логинить этих пользователей, чтобы кому-то не приходилось делать это вручную. Первый сервер, который я тестировал (Server 2012), работал нормально. Однако я попробовал Server 2008 R2, и он продолжает запрашивать пароль. Вот код.
static void Main(string[] args)
{
var password = ConfigurationManager.AppSettings["Password"];
var machine = ConfigurationManager.AppSettings["MachineName"];
var userNameList = new List<string>(ConfigurationManager.AppSettings["UserName"].Split(new char[] { ';' }));
foreach(string name in userNameList)
{
Process rdpProcess = new Process();
rdpProcess.StartInfo.FileName = Environment.ExpandEnvironmentVariables(@"%SystemRoot%\system32\cmdkey.exe");
rdpProcess.StartInfo.Arguments = "/generic:TERMSRV/" + machine + "/user:" + name + " /pass:" + password;
rdpProcess.Start();
rdpProcess.StartInfo.FileName = Environment.ExpandEnvironmentVariables(@"%SystemRoot%\system32\mstsc.exe");
rdpProcess.StartInfo.Arguments = "/v " + machine;
rdpProcess.Start();
Thread.Sleep(3000);
}
}
Я добавил сон, так как соединения шли слишком быстро, и я получал ошибки «соединение занято».
Может ли кто-нибудь увидеть что-нибудь, что я делаю неправильно?