以编程方式将 10 个用户登录到远程桌面会话

Programmatically login 10 users to remote desktop session

我正在尝试创建一个应用程序,它将使用 RDP 以编程方式登录 10 个用户。目的是让这些用户自动登录,这样就不必手动登录了。我测试的第一台服务器(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);
        }
    }

我添加了睡眠,因为连接速度太快,我收到 "connection is busy" 错误。

谁能看出我做错了什么?

真的不知道为什么会这样,但我的 2008 服务器无法使用 FQDN。 IP工作正常。随便..