一、Windows 11 设置开启S3深度睡眠 仅保留内存工作 最省电的睡眠模式 禁用现代待机 解决睡眠后主机还在运行风扇还在转

前言
轻薄笔记本本也许S0级别的睡眠是可以使用的,因为本身其就不费电,但是游戏本往往都是高能耗,又或者直接上的台式机降功率的CPU,S0级别的睡眠可能一晚上就直接没电了,属实玩不起。

为什么S0睡眠这么耗电?
S0 工作状态:系统完全可用。
S0 睡眠(现代待机):低功耗空闲,网络可用 。
S1 睡眠:CPU停止工作。
S2 睡眠:CPU关闭。
S3 睡眠:仅保留内存工作。
(S1-S3) + S4 混合睡眠:睡眠和休眠状态的组合。
S4 休眠:硬件全部关闭,内存映像转为休眠文件写入到硬盘。
S5 软关机:硬件全部关闭,系统看似关闭,涓流消耗电源。
G3 硬关机:硬件全部关闭,系统完全关闭,不消耗电源。

查看当前睡眠状态
打开终端运行
powercfg -a

得到以下内容

此系统上有以下睡眠状态:
待机 (S0 低电量待机) 连接的网络
休眠
快速启动
此系统上没有以下睡眠状态:
待机 (S1)
系统固件不支持此待机状态。
当支持 S0 低电量待机时,禁用此待机状态。
待机 (S2)
系统固件不支持此待机状态。
当支持 S0 低电量待机时,禁用此待机状态。
待机 (S3)
当支持 S0 低电量待机时,禁用此待机状态。
混合睡眠
待机(S3)不可用。
虚拟机监控程序不支持此待机状态。
发现未开启S3睡眠状态,此时按照不同的系统版本来开启S3睡眠状态。

注意:请确保"待机 (S3)"选项中,没有"系统固件不支持此待机状态"字样,如有那就是硬件不支持,请不要继续尝试更改S3睡眠。

Windows 10&11

如何在 Windows 10 2020 年 5 月更新中禁用现代待机?- 微软社区 (microsoft.com)
打开终端运行。
reg add HKLM\System\CurrentControlSet\Control\Power /v PlatformAoAcOverride /t REG_DWORD /d 0
重启电脑。
如遇权限问题,尝试右击“以管理员身份运行”终端。

查看是否已设置S3睡眠状态
打开终端运行

powercfg -a
得到以下内容
此系统上有以下睡眠状态:
待机 (S3)
休眠
快速启动
此系统上没有以下睡眠状态:
待机 (S1)
系统固件不支持此待机状态。
待机 (S2)
系统固件不支持此待机状态。
待机(S0 低电量待机)
系统固件不支持此待机状态。
混合睡眠
虚拟机监控程序不支持此待机状态。
至此已完成S3睡眠状态的设置

恢复S0现代睡眠
打开终端运行。
reg delete HKLM\System\CurrentControlSet\Control\Power /v PlatformAoAcOverride
重启电脑。
如遇权限问题,尝试右击“以管理员身份运行”终端。

添加休眠按钮
powercfg -h on
reg add “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power” /v HibernateEnabled /t REG_DWORD /d 1 /f
reg add “HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FlyoutMenuSettings” /v ShowHibernateOption /t REG_DWORD /d 1 /f
注:上述命令生效需重启

二、为什么睡眠后很容易或莫名其妙被唤醒?

image-1712739586821
1.初级阶段,解决因硬件的唤醒事件
powercfg -lastwake
查看上次唤醒电脑的设备

哪些硬件能唤醒电脑?
powercfg /devicequery wake_armed
image-1712739688836

powercfg /devicequery wake_programmable
image-1712739670844

列出全部有能力唤醒电脑的硬件设备,这个范围更大,可以看到也包含了键盘。有能力唤醒,但现在可能不被允许唤醒,你可以允许或禁止这几个设备唤醒电脑,方法如下

如何允许和禁止硬件唤醒电脑?
powercfg /deviceenablewake “HID-compliant mouse (003)”

允许鼠标唤醒电脑

powercfg /devicedisablewake “HID-compliant mouse (003)”

禁止鼠标唤醒,让移动、点击鼠标不再能唤醒电脑

这两条允许和禁止命令与"右键开始菜单-设备管理器-鼠标-电源管理-取消勾选允许鼠标唤醒电脑"的效果是一样的,有的usb无线鼠标在拔插usb接收器后需要再次取消允许唤醒,并且更换usb插口似乎会被识别成不同鼠标,也需要重新设置。网卡同理。有的笔记本上禁止键盘唤醒后依然可以按任意键唤醒,也许需要进入bios设置。
image-1712739775635

我的电脑支持睡眠和休眠吗?
powercfg -a
image-1712739823350

查看电脑可用的睡眠类型,以及说明为什么一些睡眠类型不可用。S1是轻度睡眠,S2是更深,S3是最深度睡眠

S0 正常。
S1 CPU停止工作。唤醒时间:0秒。
S2 CPU关闭。唤醒时间:0.1秒。
S3 除了内存外的部件都停止工作。唤醒时间:0.5秒。
S4 内存信息写入硬盘,所有部件停止工作。唤醒时间:30秒。(休眠状态)
S5 关闭。
powercfg /devicequery wake_from_S3_supported

列出所有支持从最深睡眠状态唤醒电脑的设备

powercfg /devicequery wake_from_any

列出所有支持从任何睡眠状态唤醒电脑的设备

powercfg /devicequery S3_supported

列出支持最深度睡眠的设备,该设备不一定能唤醒电脑

powercfg /devicequery S4_supported

列出支持休眠的设备

powercfg /devicequery all_devices

列出所有设备(较长)

2.中级阶段,晚上莫名自启,解决因自动更新、计划任务的唤醒
电脑有没有计划任务?
powercfg -waketimers
image-1712739898656
下次可能会被什么计划任务唤醒,比如自动更新,也可以在计划任务里查看

Windows徽标键+S,搜索打开计划任务,进入相关目录即可
image-1712739915659

如何禁止计划任务和定时器唤醒?
右键任务栏右下角电源图标-电源选项-更改计划设置-更改高级电源设置-睡眠-允许使用唤醒定时器,使用电池和接通电源都可以根据需要设置为禁用
image-1712740021727

如果已经禁用了定时器唤醒,就不会被上述计划任务唤醒

3.高级阶段,想睡睡不了,解决软件、驱动阻止系统睡眠
点击睡眠后屏幕关闭了,喇叭也不响了,鼠标键盘灯亮,cpu风扇也在转动,动一动鼠标或键盘就会亮屏?

首先确认迅雷9的离开模式是否关闭,若未安装迅雷,将注册表的AwayModeEnable设置为0,确保离开模式处于关闭状态

注册表位置:

计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Power
image-1712740108573

关键:powercfg /requests
image-1712740127851

查看哪些进程、服务、驱动有电源需求。列表中的程序、驱动会阻止计算机进入睡眠。需要重写(删除)电源需求,方法如下。

格式:powercfg /requestsoverride 请求者类型 请求者名称 电源需求类型(可写1到3个需求类型)

举例:powercfg /requestsoverride PROCESS “chrome.exe” system

此命令会忽略掉chrome阻止睡眠的请求,名称加引号更保险。

如果你遇到下面这种带括号很长一串的情况

SYSTEM:
[DRIVER] Realtek High Definition Audio (HDAUDIO\FUNC_01&VEN_10EC&DEV_0295&SUBSYS_103C84DA&REV_1000\4&306c1263&0&0001)
音频流当前正在使用中。
对应命令是:

powercfg /requestsoverride DRIVER “HDAUDIO\FUNC_01&VEN_10EC&DEV_0295&SUBSYS_103C84DA&REV_1000\4&306c1263&0&0001” SYSTEM

或:powercfg -REQUESTSOVERRIDE DRIVER “Realtek High Definition Audio” SYSTEM

如果还是不能睡眠,那就需要更新音频驱动

恢复电源需求,让其继续阻止电脑进入睡眠:powercfg /requestsoverride PROCESS chrome.exe

如何填写请求者类型?

请求者类型3种,SERVICE PROCESS DRIVER (服务、进程、驱动),出现在powercfg /requests运行后的SYSTEM、Display、Awaymode等下方,显示为[Driver]、[PROCESS]、[SERVICE]。

如何填写电源需求类型?

电源需求类型4种,Display System Awaymode EXECUTION(显示、系统、离开模式、执行),一般3个请求者类型(SERVICE PROCESS DRIVER)都是出现在powercfg /requests运行后的SYSTEM下方,Display和Awaymode下方很少见。所以电源需求类型通常只填system1个,填3个(system display awaymode)也可以,填三个感觉似乎重写(删除)得更全面,但其实没意义,运行powercfg /requests之后,观察Display、System、Awaymode、EXECUTION哪个下面有就写哪个,若同时出现在Display和System下面就写Display和System。

Display电源需求:即使长时间没有活动,也会请求让显示屏保持打开的状态,如果显示器已经关闭,则“Display电源需求”会打开显示器,不会自启动屏保,启动的屏保会关闭,已锁定系统的继续锁定,没锁定的不锁定。
System电源需求:请求电脑一段时间不活动后仍然保持运行,而不是进入睡眠状态。很多程序和驱动都是采用的system电源需求。
Awaymode电源需求:会让系统进入离开模式而不是睡眠模式。在离开模式下,系统会响应用户的操作,并且继续运行,但会关闭音频和视频来给人一种睡眠的感觉。迅雷开启离开模式就是这个效果(但是迅雷是直接开启系统的离开模式,所以不会显示在powercfg /requests列表里)。
注:如果powercfg /requests列出的有Printer(打印机),一般是有打印队列,也许暂停了,等待打印完成或者将打印任务移出队列即可。也可以输入powercfg -requestsoverride service spoolsv.exe SYSTEM来删除打印机的电源需求,但这样也许打印机在工作时电脑就进入了睡眠,从而中断打印。

powercfg /requestsoverride
image-1712740169689

不加后面的参数是直接查看刚刚已经重写(删除)过电源需求的进程、服务、驱动

也可在注册表里查看:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerRequestOverride
image-1712740247932

评论里提到电脑会在两分钟内黑屏睡眠,这是微软的隐藏设置

在无人参与空闲超时后进入睡眠状态:

微软希望如果系统因远程网络唤醒(Wake on Lan)或触发了定时器唤醒,系统就会在120秒内睡眠,而不是自定义的时间后睡眠。

官方说明:

https://docs.microsoft.com/zh-cn/windows-hardware/customize/power-settings/sleep-settings-sleep-unattended-idle-timeout?redirectedfrom=MSDN

使用Powercfg删除此隐藏设置:

powercfg -attributes SUB_SLEEP 7bc4a2f9-d8fc-4469-b07b-33eb785aaca0 +ATTRIB_HIDE

使用Powercfg添加此隐藏设置:

powercfg -attributes SUB_SLEEP 7bc4a2f9-d8fc-4469-b07b-33eb785aaca0 -ATTRIB_HIDE

修改无人参与空闲超时后进入睡眠的时间为36000秒,默认120秒:

使用电池:

powercfg /SETDCVALUEINDEX SCHEME_CURRENT 238C9FA8-0AAD-41ED-83F4-97BE242C8F20 7bc4a2f9-d8fc-4469-b07b-33eb785aaca0 36000

插电源:

powercfg /SETACVALUEINDEX SCHEME_CURRENT 238C9FA8-0AAD-41ED-83F4-97BE242C8F20 7bc4a2f9-d8fc-4469-b07b-33eb785aaca0 36000

powercfg /batteryreport

会生成一份笔记本电池使用报告,估计了电池一次性可用时间和寿命

位置在 C:\WINDOWS\system32\battery-report.html

参考链接:

微软官方文档:Powercfg命令参数 Powercfg command-line options

三种电源请求(Display System Awaymode)的简要说明:PowerSetRequest function Parameters

三种电源请求(Display System Awaymode)的区别详细说明: Power Request Types: What’s the difference between Display, System, Awaymode. (powercfg)

4.防睡眠休眠小工具
微软官方工具PowerToys,临时禁止系统睡眠休眠

评论区介绍的100多K的简洁小工具Awake.exe 临时禁止系统睡眠休眠