之前我们写过一篇《Linux 系统下实现 UPS 不间断电源本地路由断电网络断网自动关机工具》文章,主要面对的是 Linux 系统,Windows 系统下可以使用本文工具来实现,原理都是类似,只不过实现方法不同。
UPS 不间断电源主要是为了防止突然停电时损伤 NAS 相关设备的硬盘和保护数据用
有些高端 UPS 带通信, 会在停电时通知设备, 这样设备可以采取关机等措施, 来避免 UPS 的电量用完导致断电对 NAS 硬盘的损伤, 从而保护硬盘数据.
UPS 通信软件
由于一些普通的 UPS 不带通信功能,或支持 USB 通讯接口不足的情况下,如果想实现通信的功能实现 Windows 下断电自动关机该怎么操作呢。
这个程序, 原理是检测网络, 在指定的时间内判断路由器或光猫的 IP 是否 Ping 通, 连续超过 3 次以上不通则自动关机
如果停电了, 路由器或光猫会断电,NAS 设备自然 ping 不通目标, 这样就可以初步判断为停电, 为了避免误判, 设定为连续 3 次 ping 不通则关机.

程序启动后,会最小化启动, 需要恢复窗口, 可以双击右下角程序的托盘图标,
由于每个人的路由 IP 都不一样, 点击目标 IP 后的设按钮修改需要 Ping 的路由 IP 及备用 IP(或直接手动修改目录下 config.ini 配置文件里设置),log 目录下是日志文件, 每次关机都有记录方便查询。
软件设置好以后可以直接将快捷方式放到 Windows 的启动目录下,具体方法可查看《Windows 系统设置程序开机自启动的几种方法》文章
软件本地下载:UPS-Windows 版.zip
同类型工具,可查看:断网自动关机工具-加上 ups 可以实现停电自动关机
方法 2 、 PowerCheck.bat
来源:https://gist.github.com/chenshaoju/ebbf7542ffaa8afc776a90f50959cf35
来源 2:https://zhuanlan.zhihu.com/p/473765058
适用场景:Windows 有 UPS 供电,但 UPS 没有 USB 通讯功能,无法自己停电后通知 Win,就需要 Win 自己判断关机,
脚本逻辑规则:通过间隔 ping 路由器,若是 ping 不通则判断为停电,会在(shutdown /s /t 300)5 分钟 (300 秒) 后执行关机。
若是在 5 分钟内又成功 ping 通路由器则判定为市电恢复,自行取消关机命令。
参考资料
- https://www.52pojie.cn/thread-1358594-1-13.html
- https://luoji.men/2022/02/UPS 无通讯功能 Windows 停电自动关机脚本
- Windows 停电休眠软件 [UPS_Hibernate],https://zhuanlan.zhihu.com/p/639580689