Java远程开关机(全过程)
网络唤醒
- 网络唤醒要接通电源,要接网线,不能是wifi,在同一网段下进行网络唤醒最为省事
- 网络唤醒需要终端的主板和网卡支持
① 先进入BIOS中开启网络唤醒功能,在BIOS中找到“OnBoard LAN”选项,将它设成 “Enabled”。同时将“POWER MANAGEMENT SETUP(电源管理设置)”下的“Power On by LAN/Ring”选项设为“Enabled”,最后将“Wake On LAN(网络唤醒)”选项设置为“Enabled”(某些计算机的BIOS配置的选项名可能有些许不同)
② 右击“我的电脑”并选择“管理”选项,在随后出现的“计算机管理”窗口中找到“设备管理”,在设备列表中找到“网络适配器”下的本地网卡(注意是有线网卡,网卡名在‘网络与Internet’中查看),右击本地网卡并选择“属性”,在弹出的对话框中选择“高级”页签,选择“Wake on Magic …”或“网络唤醒”选项并将其值设置为“开启”,在同一个窗口中选择“电源管理”页签,在“允许设备唤醒计算机”以及“只允许幻数据包唤醒计算机”选项前打钩- 代码(需要被控制计算机的mac地址):
Lenovo系列电脑一般不支持网络唤醒功能
String mac = "";try {int port = 7;byte[] macByte = new byte[6];String[] ips = mac.split("\\:|\\-");for (int i = 0; i < 6; i++) {macByte[i] = (byte) Integer.parseInt(ips[i], 16);}// 用来存储网络唤醒数据包byte[] bys = new byte[6 + 16 * macByte.length];for (int i = 0; i < 6; i++) {bys[i] = (byte) 0xff;}for (int i = 6; i < bys.length; i += macByte.length) {System.arraycopy(macByte, 0, bys, i, macByte.length);}// 将字符形式的IP地址转换成标准的IP地址// InetAddress address = InetAddress.getByName(ip);InetAddress address = InetAddress.getByName("255.255.255.255");// 生成标准的数据报DatagramPacket pack = new DatagramPacket(bys, bys.length, address, port);// 创建标准套接字,用来发送数据报DatagramSocket socket = new DatagramSocket();// 发送魔法包socket.send(pack);socket.close();} catch (Exception e) {e.printStackTrace();} catch (Throwable e) {e.printStackTrace();}
远程关机
- 添加注册表
① 按Windows键+ R,输入:regedit,找到 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
② 右击system 选择新建 DWORD(32位)值
③ 输入以下标签:LocalAccountTokenFilterPolicy
④ 双击该值,然后将该值更改为1- 编辑本地组策略
① 按Windows键+ R,输入:gpedit.msc,打开“组策略编辑器”
② 在“组策略”窗口的左窗格中打开“计算机配置”—“Windows 设置”—“安全设置”—“本地策略”—“用户权利分配”
③ 在右侧列表中选择“从远程系统强制关机”,单击对话框下方的“添加用户或组”按钮,然后在新弹出的对话框中输入“guest”,再单击“确定”
④ 在右侧列表中选择“拒绝本地登录”,把拒绝的guest项删除
⑤ 在右侧列表中选择“拒绝从网络访问此计算机”,把拒绝的guest项删除
⑥ 在右侧列表中选择“允许本地登录”,单击对话框下方的“添加用户或组”按钮,然后在新弹出的对话框中输入“guest”,再单击“确定”
⑦ 在“组策略”窗口的左窗格中打开“计算机配置”—“Windows 设置”—“安全设置”—“本地策略”—“安全选项”
⑧ 在右侧列表中选择“帐户: 使用空密码的本地帐户只允许进行控制台登录”,选择禁用
⑨ 右键“此电脑”,选择“管理”,双击“本地用户和组”,双击其下的“用户”,然后双击“Guest”,若是显示账户已禁用,取消禁用
⑩ 运行cmd管理员权限,输入net user guest /active:yes激活guest账户- 重启计算机
- 代码(需要被控制计算机的ip、用户名和密码)://用户名为‘guest’,密码可为空
String ip = "";String user = "guest";String pwd = "";try {Runtime.getRuntime().exec("net use * /del /y");Process process = Runtime.getRuntime().exec("net use \\\\" + ip + "\\ipc$ \"" + pwd + "\" /user:\"" + user + "\"");int i = process.waitFor();// 等待命令执行完if (i == 0) {Runtime.getRuntime().exec("shutdown -s -t 0 -m \\\\" + ip + " -c \"test\" -f");}} catch (Exception e) {e.printStackTrace();}
若是想要重启计算机,在关机的基础上修改参数s为r就可以了Runtime.getRuntime().exec("shutdown -r -t 0 -m \\\\" + ip + " -c \"test\" -f");
Java远程开关机(全过程)相关推荐
- java实现远程开关机
1. java远程开机 java实现远程开机需要先获取到pc的mac(物理地址),通过mac地址唤醒网络数据包 参考代码: /*** 远程开机* @return*/@RequestMapping(&q ...
- Java实现远程开关机(网络唤醒)
Java实现远程开关机是做的一个在局域网下实现一台机器对多台机器的开关机控制 远程唤醒实现 是通过电源的一种协议进行控制的,需要知道被唤醒机器的mac地址 首先要须知: 网络唤醒条件 网络唤醒需要终端 ...
- 通过手机远程开/关机
之前看到一篇名为<通过手机远程关机>的文章,写的不错,很有创意. 作为开发人员中的一员,我想我们都有这样的一个想法,就是让我们写的代码去实现我们生活中的一些日常事务,如远程开/关机. 要说 ...
- teamviewer linux远程开机,一分钟就能学会用手机远程控制你的电脑,远程开关机就是这么简单...
一.向日葵远程控制 向日葵远程控制软件手机端这个是配合向日葵远程控制被控端也就是电脑端来使用的,连接之后便可以用手机来操控你的电脑.不同触碰或者点击有着不同的功能,使用前会有教程的. 向日葵远程控制软 ...
- 计算机控制系统开关,电脑远程开关机控制器
原标题:电脑远程开关机控制器 SPD-M05电脑远程开机/关机/复位远程控制器 斯必得SPD-M05电脑远程开机/关机/复位控制器是专为各种服务器及无人值守机房电脑远程遥控开机/关机/复位所开发.该控 ...
- 向日葵Android受控端老版本,向日葵Android端版本更新:支持远程开关机
近日,向日葵远程控制Android控制端更新了10.9版本,本次更新优化了使用相关智能硬件设备进行远程控制时的体验:支持通过向日葵开机插座C2实现远程开关机. 本次更新之后,我们可以使用向日葵远程控制 ...
- 如何实现电脑远程开关机?
要实现电脑远程开关机,您可以使用远程桌面软件或命令行工具.如果您使用的是 Windows 操作系统,您可以使用 Windows 远程桌面协议 (RDP) 或使用命令行工具 "shutdown ...
- 电脑服务器 定时开关机 远程开关机(windows+linux)
定时开关机.远程开关机在实际使用上总是有需求 以下总结了我个人常用的方法 一.定时开机 定时开机主要依赖主板和电源的支持,电源通常是支持的,只有少部分不支持,如果设置了主板不成功,通常就是电源的问题了 ...
- 利用esp01s模块和光耦817实现天猫精灵、小爱同学实现电脑远程开关机
利用esp01s模块和光耦817实现天猫精灵.小爱同学实现电脑远程开关机(由于电脑电源开机线是5V,需要另外加两个5V转3.3V模块对esp01s提供电源和反馈开关机状态). /** 利用esp01s ...
- ubuntu 实现远程开关机
1. 需求 家里厅里有三台linux主机在跑虚拟机, 一台windows主机在跑wsl2 - ubuntu 20.04 分别是 硬件 网络连接方式 OS ip 虚拟机s EUC i5 7250U 16 ...
最新文章
- 关于hql一些不常见但好用的技巧(个人总结)
- 好强一个Julia!CSV数据读取,性能最高多出R、Python 22倍
- 解决java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
- 本地音频播放,使用AVFoundation.framework中的AVAudioPlayer来实现
- mysql每次查询1000条数据库_30多条mysql数据库优化方法,千万级数据库记录查询轻松解决...
- 图像分割的「奇技淫巧」
- oracle 数据库启动停止小结
- JBoss Tools安装
- 一起学爬虫——如何爬取通过ajax加载数据的网站
- 通过流程构建组织的【个人能力】和【团队能力】
- Jpeg图像转yuv 16倍数问题(第一季)
- 有线路由器加无线路由器的组网方法
- 云栖大会放大招,浪潮的JDM模式别人学不会
- Allegro如何改变线宽操作指导
- android字符串末尾添加,android在textview编辑的末尾追加''
- 私钥,公钥的区分——私钥公钥讲解
- 植物叶片——丙二醛MDA
- 一个机械专业小混混(gooogleman)学习嵌入式ARM的真实经历
- 七夕小案例:用代码给心爱的她画一个爱心
- 设计模式的原则和常用的模式
热门文章
- CentOS cp 复制隐藏文件提示 cp: cannot stat ?.xxx*?. No such file or directory
- UBI文件系统的制作与挂载案例
- POJ 3097 Falling Ice 笔记
- ycl-django网站搭建(持续更新中)
- MIUI9线刷包精简
- 跳舞毯行业调研报告 - 市场现状分析与发展前景预测
- Registration based Few-Shot Anomaly Detection
- 赴日软件工程师,据说很火
- 川大的计算机科学分数线,四川大学2020年招生录取分数线
- CSS学习(一)--选择器