RDP从c#到多台10台计算机

时间:2018-02-13 06:57:45

标签: c# windows-10 rdp

我正尝试从计算机名列表中通过rdp登录多台win 10计算机,然后重新启动它们。根据我的最佳知识,rdp就是这样做的方法。我处于起步阶段,我甚至无法连接一台机器。

我尝试并测试了我能找到的每种资源的代码。我测试了多个Microsoft RDP客户端控件版本,并验证我的Windows 10计算机上有版本10。下面是我到目前为止的代码。

 private void startBtn_Click(object sender, EventArgs e)
    {


        try
        {
            dmain = @"MGROUPNET\";
            lines = listBox.Lines;
            Server = lines[0];

            dmain = dmain + nUser;

            //Testing to verify correct details
            usernameLabel.Text = dmain;
            passLabel.Text = nPass;
            serverLabel.Text = Server;

            rdp1.Server = Server;
            rdp1.UserName = dmain;
            rdp1.AdvancedSettings9.NegotiateSecurityLayer = true;
            rdp1.AdvancedSettings8.ClearTextPassword = nPass;

            rdp1.Connect();

            connectLabel.Text = this.rdp1.Connected.ToString();
        }
        catch (Exception Ex)
        {
            MessageBox.Show("Error Disconnecting: " + Ex);
        }
    }

在此代码之后,我得到连接状态2.然后更改为0而不显示任何内容。任何帮助或指导将不胜感激。

1 个答案:

答案 0 :(得分:2)

我建议您使用PsExec而不是RDP。你可以在这里下载: https://docs.microsoft.com/en-us/sysinternals/downloads/psexec

现在,您只需使用以下命令使用c#程序打开cmd窗口: psexec_path \\target_IPv4 -u local_username -p password shutdown.exe -t 0 -r

如果连接成功,设备将尝试使用指定的用户凭据重新启动。确保用户具有执行此操作所需的权限(例如,如果您在域中)。

我必须注意到连接连接不安全。至少使用PsExec v2.1来加密您的连接。