chenxinyi 发表于 2024-8-3 00:35

Windows 11 S0现代待机模式下关闭蓝牙和USB无线蓝牙,防止唤醒

本帖最后由 chenxinyi 于 2024-8-3 01:28 编辑

曾经与本坛网友也讨论过S0待机模式问题,主是还是微软系统的黑箱操作,在很多情况下会自动唤醒(新用户大多数不了解),导致电池电量过耗:
1. 特定设备唤醒- 如无线网卡,蓝牙设备等 (可通过powercfg命令枚举,关闭掉)
2. 任务计划,可通过下面powershell命令查出后再去任务计划管理中失效掉。
Get-ScheduledTask | where {$_.settings.waketorun}
但情况1中的无线蓝牙设备唤醒真没法关闭掉,关上笔电盖子进入S0待机,无线蓝牙鼠标只要一移动,A壳的小红点灯就从呼吸状态变常亮了,表明计算机实质已被唤醒!

无线蓝牙设备在进入S0待机无法关闭掉,一直是个痛点,用powercfg也枚举不出来,在设备管理器去点击相关蓝牙设备中的属性、电源管理,”允许此设备唤醒计算机“是灰掉不可用的。
也许你的可以关掉,就不用再往下看了,但我自已的Windows 11 22H2就是不可选的,所以,今天下定决心要解决掉这个问题:

网上找了很多方法,今天晚上试验成功了,就分享下powershell 脚本(也是来自于网络,自已也修改了下)

基本原理是建立两个任务计划,在进入S0待机事件,和退出S0待机事件时候执行一个powershell脚本去关闭/打开无线蓝牙服务。

这个脚本同样支持关闭/打开USB外接设备,比如你的USB口插的是蓝牙接收器。

无论进入或退出S0待机,执行完此脚本会有一个系统语音(中文,可自行修改!)

新建任务计划前,请确认下系统是可以执行powershell脚本的,打开Powershell控制台窗口,输入命令回车:
Set-ExecutionPolicy Unrestricted
1. 创建 “进入新型待机状态" 任务计划,最主要是新建触发器,
选”发生事件时“ 、日志选”系统“,输入源:Kernel-Power , 输入 事件ID:506 (参考下图)

接着设置 ”操作“ > 新建"启动程序”,"程序或脚本“中填入 powershell.exe
“添加参数”填入 -File C:\bluetooth.ps1 -BluetoothStatus Off (见下图)



2. 创建 “退出新型待机状态" 任务计划,步骤和1一样,只是触发器中事件ID改成 507,

“启动程序”设置中“添加参数”填入 -File C:\bluetooth.ps1 -BluetoothStatus On

设置好上面两个任务计划后,关笔记本盖子就可以自动在S0待机同时关闭无线蓝牙,开笔记本盖子唤醒后自动打开无线蓝牙。

最后,如果自已有兴趣,也可修改bluetooth.ps1脚本,添加更多自已喜欢的新功能。


注:如果任务计划“进入新型待机状态" 在S0待机不工作,可以考虑用Autohotkey代替,设置自定义热键完成待机和执行关闭无线蓝牙。

yx2web 发表于 2024-8-3 08:39

技术技巧分享,谢啦!学习了,又涨姿势了。{:1_257:}

rainskyer 发表于 2024-8-3 14:56

感谢技术大咖,我设置后面看看能不能成功

degoxin 发表于 2024-8-5 23:49

马克一下

e17 发表于 2024-8-6 08:40

感谢分享
页: [1]
查看完整版本: Windows 11 S0现代待机模式下关闭蓝牙和USB无线蓝牙,防止唤醒