Windows 远程关机服务(HTTP API 服务)

原始链接在: Windows 远程关机服务(HTTP API 服务) - 小众软件

[!info] 如何远程关机
Windows 系统可以通过 WoL 协议,实现远程网络唤醒功能,即远程开机。
那么,如何远程关机呢?

远程关机有哪几种方式?

青小蛙知道的办法包括:

方法 实现方式 适用平台(发起端)
SSH 为 Windows 开启 OpenSSH 服务,通过远程 SSH 执行 shutdown Windows / macOS / Linux
HTTP API(Flask) 在 Windows 上运行 Web 服务(如 shutdown-api),通过 HTTP 请求触发关机 任意平台(浏览器 / curl / AI)
shutdown /m 使用 Windows 自带远程关机命令,依赖 SMB、管理员权限和策略配置 仅 Windows
PsExec 使用 Microsoft Sysinternals 工具远程执行 shutdown 命令 仅 Windows
RDP / 远程桌面 使用 Microsoft Remote Desktop 登录远程桌面后手动关机 Windows / macOS / iOS / Android
MDM / 域控 使用企业设备管理(组策略 / Intune)统一下发关机指令 管理平台(Web / 控制台)
OpenClaw 虾自己决定如何关机 跨平台

在这些方法中,青小蛙一直以来都使用 RDP 远程登录。

(这里赞一下 Windows 的移动端界面,通过手机 RDP 远程登录 Windows 之后,操作非常顺滑。是的,非常顺滑。)

场景是家里的游戏机开机,晚上上床后忘记关机了,有时候第二条早上才发现 :sob:

但有时候睡前发现了,肯定不想爬起来去关机啊,于是在手机上通过 Windows App 远程登录(也不算远程啦,从卧室登录客厅的游戏机),然后关机:

其他几个方法,青小蛙测试了下 SSH,先说结论:能用,很方便,但配置麻烦。

配置好之后只需要 ssh [email protected] “shutdown /s /t 10” 即可关机,但配置 SSH 这件事就…

shutdown/PsExec 仅适合 Windows 系统,手机上不支持。

其他未测试。

shutdown-api:让 AI 帮你远程关闭 Windows

终于引出它来了,这是一个开源项目,它提供了一个 Windows 远程关机 HTTP API 接口。

听出来了嘛,这是可以让你的 AI 帮你关机的工具 :joy:

它基于 Python + Flask 实现,需要在 Windows 长期运行一个服务,启动后即可通过 API 接口来实现关机。

不要担心 API 操作,以前人类操作 API 还需要学习,现在 AI 操作 API,简直了,如虎添翼啊。

使用方法

以下内容看不懂没关系,直接给AI 或者你的 OpenClaw,它就会了:

关机接口

POST /api/system/shutdown

请求示例:

curl -X POST http:``//localhost``:5000``/api/system/shutdown \``-H ``"Content-Type: application/json" \``-d ``'{"auth_token": "your_secure_token", "delay": 30}'

请求参数:

参数 类型 必填 说明
auth_token string 认证令牌
delay int 延迟秒数,默认 0
force bool 是否强制关闭程序,默认 false

取消关机

POST /api/system/cancel

请求示例:

curl -X POST http:``//localhost``:5000``/api/system/cancel \``-H ``"Content-Type: application/json" \``-d ``'{"auth_token": "your_secure_token"}'

健康检查

GET /api/health

curl http:``//localhost``:5000``/api/health

安全注意事项

  1. Token 鉴权:所有敏感操作必须携带正确的 auth_token
  2. HTTPS:公网使用时务必配置 SSL 证书
  3. IP 白名单:可配置 IP_WHITELIST 限制访问来源
  4. 日志记录:所有操作都会记录到 shutdown_service.log

配置说明

环境变量 说明 默认值
FLASK_HOST 监听地址 0.0.0.0
FLASK_PORT 监听端口 5000
FLASK_DEBUG 调试模式 false
SECRET_KEY 认证密钥 (必填)
IP_WHITELIST IP白名单 (空)

获取

项目地址:GitHub

如何安装?

你不是有虾吗?让它装!它可以的。


原文:Windows 远程关机服务(HTTP API 服务) - 小众软件

诶,这也是前两天折腾过的项目

当时的诉求是,关机前要清回收站,要同步Syncthing,然后,觉得麻烦,就顺手写了个小工具,帮我把这些关机前的工作都做完,并且阻塞直到Syncthing确实同步完毕,然后读秒3秒,再关机。

挺方便的,代码也很简单。我目前关机都是直接运行程序,然后电脑自己会关闭

哦哦,还顺便把Explorer的Show Hidden File给设置成了否,这样下次开机的时候,就能恢复到默认状态。

第二天 :grinning_face:

我是使用uu远程 手动关机

手动关机太烦了

远程关机不稀罕,要能远程开机那就屌了

:thinking: 开机不是更容易么?

wol 都行啊

远程开机不就是WakeOnLan嘛?挺简单的啊

或者,要不玩个邪道?

  • 随便入一个ESP32,使用BLE或者Zigbee/Thread通信的那种,具体的型号,ESP32-C6或者ESP32-H2都行,当然,ESP32-C3也挺好,BLE又不是不能用
  • 随便接一个3.3V的电池
  • 随便接一个继电器
  • 然后把电脑的PWR跳线接到继电器上
  • 之后,写点代码,反正能远程发送到单片机上就行

这就可以实现,非有线连接的电脑的远程开机了。

看了下任务管理器,已经49天没关机了 :joy:

太邪修了吧

多大功耗的

现在用的网易uu远程,有一个菜单选项可以关机或重启

我承认这个做法有些邪道,但是吧。

  • WOL只支持有线连接,无线的就没办法支持了
  • WOL需要一大堆的计算机的软硬件设置,也挺麻烦的

而这个做法

  • 无视线材,只要BLE/Zigbee/Thread能涵盖的地方都可以开机,就算涵盖不了,Mesh组网可以慢慢的延伸过去
  • 无视计算机的任何软硬件设置,毕竟逻辑上,它跟“按下计算机开机键”是完全一致的

要说缺点的话,3.3V电池得时不时的充个电,不过可以直接查到计算机主板的USB口,平时开着机就给他充电了。除非半年不开机(具体时间取决于电池容量和芯片的种类),但是对普通家用的服务器/计算机来说,这种情况不会发生

我自己弄了个关机工具,指定时间区间无操作关机(比如凌晨睡着了,电脑自动关机了)、断网后无操作关机(UPS没有通信能力)、倒计时关机、定时关机。如果我晚上忘记关机,那我睡了,电脑也会自动关机。

18650电池+充放一体模块搞定充电问题啊

就算用了TP4056,但是电从哪里来啊

不是还是得从机箱里的USB给点,或者周期性的拿出来充电。前者如果长时间没开机就完蛋了,后者很不方便。

而且,不少ESP32自己集成了供电模块,只要简单焊接一个锂电池就行了,连4056都省了

650W的电源,平时功耗100W+

好几年前用esp8266+步进电机实现过物理开关机,现在还在用,主要是解决我的笔记本偶尔会自动重启,然后卡白屏,只能物理重启。

esp8266代码和APP都是使用B4X语言开发的,简单好用。

这不得用什么物理方法把电机固定在机箱上?如果松了怎么办?还是说用的是卡口结构?