JAVA执行Windows的shutdown命令实现远程关机

JAVA执行 Windows命令 实现远程关机

    需求是这样的,用户想通过点击页面上的 指定关闭某一台唤醒类设备(电脑),当然设备肯定不止一台,那么我是这么处理的,请看下文:
(温馨提示: 专业版系统亲测可行,家庭版不行)

1. 更改本地安全策略

更改策略有两种方式:

  1. 通过操作gpedit.msc 更改
  2. 通过secedit 命令更改
  3. 不想一步一步看的可以直接往下翻,有简单办法
第一种方式:
  1. 首先 win+R 输入gpedit.msc 打开本地组策略编辑器( 提示windows找不到 ‘gpedit.msc’ 的,请装个专业版系统 )
    在这里插入图片描述

  2. 然后看到这样的界面
    在这里插入图片描述

  3. 依次点击 Windows管理 -> 安全设置 -> 本地策略 -> 用户权限分配 -> 找到从远程系统强制关机策略 看到如下界面在这里插入图片描述
    双击打开, 点击添加用户或组,输入Guest 一路确定,这样就OK了.

  4. 然后在另一台电脑上打开CMD

  5. 输入net use \\ip /user:username password 输入刚刚设置的电脑的IP地址, 用户名和密码为那台电脑的用户名和密码(一般为Administrator)

  6. 提示你命令成功完成就表示连接成功了,注意:必须建立连接否则接下来可能会提示 ip:拒绝访问。(5)

  7. 然后输入 shutdown -s -m \\ip地址 默认为1分钟后关机,可以手动设置,可以输入shutdown ?自行查看

第二种方式 (有捷径 着急的兄弟直接看 第9步骤)
  1. 我们需要使用secedit命令,首先你确保的Windows系统需要是专业版,否则会:在这里插入图片描述

  2. 我们要使用secedit /configure 就需要一个安全模板,也就是 .inf 文件,那么我们可以使用mmc创建一个模板.在这里插入图片描述
    在这里插入图片描述

  3. 依次点击 文件 -> 添加/删除管理单元 -> 找到 安全模板 -> 添加 在这里插入图片描述

  4. 右键安全模板 -> 新加模板
    在这里插入图片描述

  5. 像这样在这里插入图片描述

  6. 依次点击 本地策略 -> 用户权限分配 -> 找到从远程系统强制关机策略 看到如下界面
    在这里插入图片描述

  7. 双击打开设置 -> 勾选在模板中定义这些策略 -> 添加Guest
    在这里插入图片描述

  8. 点击应用后右键你新建的模板 点击保存 (重要!!!)

  9. 找到你的模板文件,文件内容是这样的: ( 展示内容是因为可以做成批处理文件执行以上非常复杂繁琐的操作 )

[Unicode]
Unicode=yes
[Version]
signature="$CHICAGO$"
Revision=1 
[Privilege Rights]
seremoteshutdownprivilege = Guest,Administrators
  1. 例如:
@echo off
(echo [Unicode]
echo Unicode=yes
echo [Version]
echo signature="$CHICAGO$"
echo Revision=1 
echo [Privilege Rights]
echo seremoteshutdownprivilege = Guest,Administrators)>>sec.inf
secedit /configure /db sec.sdb /cfg sec.inf /log sec.log
echo successed.
pause>nul

该代码原处 https://blog.csdn.net/nui111/article/details/43672767 感谢这位大佬.

  1. 直接copy代码,新建记事本 粘贴进去保存,修改记事本后缀为 .bat 双击完事儿
  2. 然后在你电脑上先执行 net use \\ip /user:username password
  3. 然后执行 shutdown -s -m \\ip

2. 整合进JAVA代码

使用Runtime类,可以执行cmd命令:

Runtime runtime = Runtime.getRuntime();
runtime.exec("net use \\\\" + ip + " /user:" + username + " " + password);
runtime.exec("shutdown -s -m \\\\" + ip);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值