一、电脑相关设置
1、Win + R =》输入gpedit.msc
2、远程控制开关机组策略里设置:
计算机配置 =》Windows设置 =》安全设置 =》本地策略 =》用户权限分配 和 安全选项
=>从网络访问此计算机和从远程系统强制关机里面添加Guest账户
3、检查来宾和管理员禁用状态,管理员禁用,如果下方默认来宾是guest,那么来宾用户状态要启用
3、电脑Bios系统里面需要设置 网卡唤醒“Lan on Wake”还有一个什么要设置成“Fixed Time”
4、确认防火墙关闭
5、关闭快速启动,快速启动”作为系统默认的关机方式,不支持网络唤醒
6、组策略管理员状态“不适用”解决方案
控制面板 -》管理工具 -》计算机管理 -》计算机管理(本地) -》系统工具 -》本地用户和组 -》用户 -》右边双击“Guest” -》取消“帐户已停用”勾选—确定(此时“Guest”帐户无红叉)
二、主要代码
/// <summary>/// 开机/// </summary>/// <param name="ip"></param>/// <param name="macString">物理地址 “FF-FF-FF-FF-FF-FF”格式</param>private void WakeUp(string macString)//发送{try{if (null != macString && macString.Split('-').Length == 6){string[] macStringArray = macString.Split('-');byte[] macByteArray = new byte[6];for (int i = 0; i < 6; i++){macByteArray[i] = Convert.ToByte(macStringArray[i], 16);}UdpClient client = new UdpClient();client.Connect(IPAddress.Broadcast, 9090);byte[] packet = new byte[17 * 6];//写入6字节FFfor (int i = 0; i < 6; i++)packet[i] = 0xFF;//写入16遍mac地址for (int i = 1; i <= 16; i++)for (int j = 0; j < 6; j++)packet[i * 6 + j] = macByteArray[j];int result = client.Send(packet, packet.Length);client.Close();}}catch (Exception ex){Debug.Log("网络唤起指定计算机异常"+ex.ToString());}}
//通过IP关闭计算机//关机命令: shutdown -s -m \\192.168.0.xx -t 0//重启命令: shutdown -r -m \\192.168.0.xx -t 0private void ShutDown(string ip){string args = String.Format("/cshutdown -s -m \\\\{0} -t 0", ip);System.Diagnostics.Process.Start("cmd.exe", args);Debug.Log(args);}
如果觉得《Unity实现远程开关机电脑设置(网络唤醒)》对你有帮助,请点赞、收藏,并留下你的观点哦!