想使用Windows的计划任务来实现:当计算机空闲时,自动关机,以避免资源浪费。
方案一
测试了多个软件,如Shutter,WinOFF Setup,它们功能丰富,但仅能在用户登录时运行。而Windows 11会在一段时间后自动注销用户,尽管尝试多种设置方法,问题仍未解决。
方案二
编写了AI程序来检测用户空闲时间,功能正常,但作为服务运行时出现问题:即便用户正在进行操作,系统也会执行关机操作。根本原因在于服务程序的会话无法感知其他已登录用户的活动状态。
方案三
随后考虑使用Windows计划任务调用shutdown.exe
,此方法在用户未登录时也能执行。
配置详情:
-
常规:
- 不管用户是否登录都运行
- 以最高权限运行
-
触发器:
- 设置为每5分钟重复一次
-
操作:
- 执行命令:
C:WindowsSystem32shutdown.exe
- 命令参数:
/s /t 1800
(表示1800秒后关机,即30分钟)
- 执行命令:
-
条件设置:
- 仅当计算机空闲时间超过下列值后才启动任务:1小时
- 等待空闲时间:1小时
尽管能成功执行关机操作,但并非按照预期的2小时后执行。调整相关时间后,依然无法达到预期效果。
微软官方解释
- Windows官方文档关于任务空闲条件的说明
官方文档中的说明难以理解,大致意思是:若任务设定为计算机空闲30分钟后启动,并设定等待计算机空闲10分钟后执行,那么只有当任务触发前计算机已空闲25分钟,任务才会在5分钟内启动。若计算机在触发后5分钟才进入空闲状态,则任务不会启动。
在国外网站找到了这个资料
- Super User论坛上关于“等待空闲”的解释
然而,经过测试,实际效果仍不符合预期。进一步查阅资料时,注意到了这个”备注”,就是都弃用了,上面还保留了那么多解释。虽然看到了前面有个小标题“已弃用空闲等待和空闲持续时间”,但没往那儿想。
计划任务的界面上有这个选项,但实际功能已弃用!!!