1.在被远程的电脑添加一个账户,这个账户和远程的电脑账户名称和密码一样。
1.添加账户,这个账户是控制者登录的账户如下图,命令是左边来发的
2.创建用来远程的账户
2.打开组策略给新建账户权限
1. 如果没有权限执行命令时一般会报 "拒绝访问。(5)" win+r键打开运行对话框输入gpedit.msc打开组策略,
2.按顺序点击:计算机配置>>Windows设置>>安全设置>>本地策略>>用户权限分配>>从网络访问此计算机和从远程系统强制关机(这两个都需要添加"MES"这个账户给予权限 切记两个都需要添加流程都一样,下面只展示其中一个)下面是操作流程
检查是否添加成功。
3.cmd命令提示符命令
这是在控制者上执行的,ip是被关者的ip
1.检测连接如果报错请检查以上步骤
net use \\192.168.1.2\ipc$ "123" /user:"MES"
2.关机命令可以改变"-t"后面的数字来改关机倒计时
shutdown -s -m 192.168.1.2 -t 5
4.以上为实现原理
5.附带C#调命令行实现代码(和以上没关系不使用c#也可以
直接调)
private void button2_Click(object sender, EventArgs e)
{
string a = "";
string b = "";
RunExe("net", " use \\\\192.168.1.2\\ipc$ \"123\" /user:\"MES\"", out a, out b);//建立连接
RunExe("shutdown", " -s -m 192.168.1.2 -t 5", out a, out b);
}
public static void RunExe(string exePath, string arguments, out string output, out string error)
{
using (Process process = new System.Diagnostics.Process())
{
process.StartInfo.FileName = exePath;
process.StartInfo.Arguments = arguments;
// 必须禁用操作系统外壳程序
process.StartInfo.UseShellExecute = false;
process.StartInfo.CreateNoWindow = true;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
process.Start();
output = process.StandardOutput.ReadToEnd();
error = process.StandardError.ReadToEnd();
process.WaitForExit();
process.Close();
}
}