找回密码
 立即注册

微信扫码登录

搜索
楼主: norikohxb

[技术探讨] ha如何对win11的电脑进行关机软关机不是直接拔电源

[复制链接]

19

主题

327

回帖

2846

积分

金牌会员

积分
2846
金钱
2500
HASS币
20
发表于 2025-6-26 16:10:16 | 显示全部楼层
不是有RPC Shutdown吗
回复

使用道具 举报

3

主题

288

回帖

2704

积分

金牌会员

积分
2704
金钱
2413
HASS币
10
发表于 2025-6-26 21:14:01 | 显示全部楼层
我当初也找了,没发现合适的,后来写了个软件,用mqtt的方式接入,能发送电脑键鼠的空闲状态,能接收关机、重启指令。
回复

使用道具 举报

4

主题

86

回帖

722

积分

高级会员

积分
722
金钱
632
HASS币
0
发表于 2025-6-26 23:40:11 | 显示全部楼层
买个开机卡
回复

使用道具 举报

1

主题

27

回帖

407

积分

中级会员

积分
407
金钱
379
HASS币
0
发表于 2025-6-27 23:24:54 来自手机 | 显示全部楼层
nr里面装个bigssh节点,然后电脑端安装ssh service,在nr里面弄个几个节点映射到ha的辅助元素里,用辅助元素里的开关去触发ssh节点发送关机命令到电脑的ssh就OK了
回复

使用道具 举报

88

主题

300

回帖

1708

积分

金牌会员

积分
1708
金钱
1320
HASS币
0
 楼主| 发表于 2025-6-28 06:35:22 | 显示全部楼层

不需要买开机卡,板载网卡直接开启bios的唤醒用mac就可以唤醒,连个插件都不用安装
回复

使用道具 举报

19

主题

237

回帖

2767

积分

论坛技术达人

积分
2767
金钱
2491
HASS币
40
发表于 2025-6-28 17:41:47 | 显示全部楼层
ssh  [email protected] net rpc shutdown -I win11的IP  -U winuser%winpasswd
回复

使用道具 举报

88

主题

300

回帖

1708

积分

金牌会员

积分
1708
金钱
1320
HASS币
0
 楼主| 发表于 2025-6-29 02:01:22 | 显示全部楼层
hzcoolwind 发表于 2025-6-28 17:41
ssh   net rpc shutdown -I win11的IP  -U winuser%winpasswd

你这个命令是不是win11还需要安装一个openssh?
回复

使用道具 举报

88

主题

300

回帖

1708

积分

金牌会员

积分
1708
金钱
1320
HASS币
0
 楼主| 发表于 2025-7-1 09:11:38 | 显示全部楼层
再顶顶自己顶顶希望有人可以答复
回复

使用道具 举报

24

主题

226

回帖

1854

积分

金牌会员

积分
1854
金钱
1604
HASS币
10
发表于 2025-7-1 11:54:28 | 显示全部楼层
本帖最后由 zg990725 于 2025-7-1 12:05 编辑
norikohxb 发表于 2025-6-23 00:26
感觉你这个是最优的方法!

这个,   叫非法关机,  跟意外停电, 没什么区别
你可以搭建一个服务器,  接收POST或GET,  执行的是一个关机的命令.
然后,  在你的HA里,  按时,  定时, 判断一些场景,  都是可以触发这个POST

// 身份验证(建议改为数据库验证)
if ($_POST['user'] !== 'admin' || $_POST['pw'] !== 'e1bfd762321e409cee4ac0b6e841963c') {
    die('认证失败');
}

// 接收参数
$ip = $_POST['ip'] ?? '127.0.0.1'; // 目标服务器IP
$action = $_POST['action'] ?? 'shutdown'; // 操作类型

// 命令构造
$commands = [
    'shutdown' => "shutdown /s /m \\\\{$ip} /t 0 /f",
    'reboot' => "shutdown /r /m \\\\{$ip} /t 0 /f",
    'cancel' => "shutdown /a /m \\\\{$ip}"
];

if (isset($commands[$action])) {
//或shell_exec()
    exec($commands[$action], $output, $return_var);
    echo $return_var === 0 ? "操作成功" : "执行失败";
} else {
    echo "无效操作";
}


没有测试, 理论上是可行的,  一个URL就可以实现,  同时, 满足NODE-RED 发送执行

回复

使用道具 举报

88

主题

300

回帖

1708

积分

金牌会员

积分
1708
金钱
1320
HASS币
0
 楼主| 发表于 2025-7-3 00:59:58 | 显示全部楼层
zg990725 发表于 2025-7-1 11:54
这个,   叫非法关机,  跟意外停电, 没什么区别
你可以搭建一个服务器,  接收POST或GET,  执行的是一个关机 ...

对啊,其实不就是一串很简单的dos命令吗?
net use \\远程计算机名或IP\IPC$ "密码" /user:"用户名"
shutdown /s /m \\远程计算机名或IP /t 0 /f
在windows运行一个批处理。只要你有局域网远程机器的密码,你用这个命令秒关机。
为什么ha无法发送这么一串代码呢?
而且对方机器就是纯净windows,这个是windows自带的dos关机命令。
我是感觉安装openssh,等第三方程序都很麻烦,本身操作系统就可以用net use \\远程计算机名或IP\IPC$ "密码" /user:"用户名"
shutdown /s /m \\远程计算机名或IP /t 0 /f 进行关机,为什么无法在HA模拟发送这么一串命令不就ok了?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian ( 晋ICP备17001384号-1 )

GMT+8, 2025-8-16 14:57 , Processed in 0.921240 second(s), 5 queries , MemCached On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表