我正尝试从计算机名列表中通过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而不显示任何内容。任何帮助或指导将不胜感激。
答案 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来加密您的连接。