S0 待机被网卡唤醒:笔记本合盖后持续掉电

笔记本合盖放包里仍发热掉电,根因是 Modern Standby(S0)下网卡保持连接并反复唤醒,系统从未进入低功耗。用 sleepstudy 定位唤醒源、关闭网卡唤醒并调整电源策略后恢复。

问题背景

公司今年分两批换了 60 台商务本,预装 Windows 11,默认启用 Modern Standby。员工的使用习惯很统一:下班把笔记本合盖装进包里,或者插在工位扩展坞上,第二天上班再打开,很少有人真正关机。

最近两个月,陆续有 8 台机器反馈“合盖一晚上,第二天从包里拿出来是热的,电量还掉了不少”。其中一位同事周五满电放进包里,周一开机只剩四成电。IT 起初按电池老化处理,换了两块电池,问题照旧,才开始往电源策略方向查。

故障现象

  • 合盖后笔记本装在包里,外壳明显温热,偶尔能听到风扇转一下又停。
  • 电量下降没有规律:有的机器一晚掉 10%,有的掉 30% 以上;周末放置掉得更多。
  • 拔掉 USB-C 扩展坞后,掉电明显减轻,但没有完全消失。
  • powercfg /a 显示系统只支持“待机(S0 低功耗空闲)”,S3 状态不可用,固件不支持传统睡眠。
  • powercfg /sleepstudy 生成的报告里,一次约 14 小时的合盖会话中,Low Power Idle 只占三成多,其余时间系统处于 Active;报告同时列出了若干唤醒源。
  • 电池报告显示设计容量与满充容量衰减不到 10%,电池健康度正常。

排查过程

第一步先排除电池。用 powercfg /batteryreport 对比设计容量和满充容量,衰减在正常范围内;换过电池的机器现象不变,说明不是电芯问题。

第二步确认系统到底进了什么睡眠状态。powercfg /a 的输出很关键:这台机器支持的是 S0 低功耗空闲,S3 显示为“固件不支持”。也就是说,合盖并没有让机器断电休眠,而是进入一种“保持联网、随时可被唤醒”的低功耗状态。这是 Modern Standby 的设计,本身不是故障,但它意味着“合盖”不等于“停止工作”。

第三步看睡眠质量。运行 powercfg /sleepstudy 生成 HTML 报告,重点看三处:Low Power Idle 占比、Active 时段、唤醒源。问题机器的报告里,Low Power Idle 只占三成多,大量时间在 Active;唤醒源列表里反复出现 USB 以太网设备和无线网卡。

第四步确认唤醒权限。powercfg /devicequery wake_armed 列出当前被允许唤醒系统的设备,扩展坞网卡和无线网卡都在列表里;powercfg /lastwake 指向的正是 USB 网卡。再结合使用场景:这几台问题机器要么长期插着扩展坞,要么包里带着扩展坞、网线还接着。夜间网络里的 DHCP、ARP、组播流量,以及网卡的“唤醒模式匹配”,都可能把系统从低功耗拉回 Active。

第五步验证。选一台问题机器,禁用网卡唤醒、关闭电池模式下的待机联网,再观察一晚:sleepstudy 显示 Low Power Idle 从三成多升到九成以上,整夜掉电从近三成降到个位数。变量唯一,结论成立。

解决方案

  1. 关闭不必要的唤醒源:设备管理器里找到有线网卡、无线网卡和扩展坞网卡,在“电源管理”中取消“允许此设备唤醒计算机”;同时在网卡高级设置里关闭 Wake on Magic Packet 和“唤醒模式匹配”。也可以用 powercfg /devicedisablewake "设备名" 批量处理。
  2. 关闭电池模式下的待机联网:通过组策略或 Intune 把“Allow network connectivity during connected-standby (on battery)”设为 Disabled。合盖后网络断开,邮件、网盘、更新等后台同步就不会持续把机器拉活。
  3. 关闭电池下的唤醒定时器:执行 powercfg /setdcvalueindex scheme_current sub_sleep bd3b718a-0680-4d9d-8ab2-e1d2b4ac806d 0,避免 Windows 更新、备份等计划任务在夜里唤醒机器。
  4. 更新驱动和固件:扩展坞固件、网卡驱动、芯片组驱动统一到厂商推荐版本。部分旧固件会在待机时反复重新枚举 USB 设备,把系统从低功耗里拽出来。
  5. 设置休眠兜底:对经常出差的机器启用休眠,并把电池模式下的“在此时间后休眠”设为 45 分钟。即使待机被异常唤醒,最终也会落盘休眠,不会整夜耗电。
  6. 不要强行禁用 Modern Standby:多数新平台不支持 S3,改注册表关闭 S0 可能导致无法睡眠、唤醒异常甚至无法关机。正确做法是治理唤醒源,而不是和平台能力对抗。

根因分析

直接根因是 Modern Standby 下扩展坞网卡保持可唤醒状态,夜间网络流量反复把系统从低功耗拉回 Active,CPU、网络和后台同步持续工作,电量以“待机”的名义被消耗。

更深一层,问题出在对“合盖”的认知错位。传统 S3 睡眠是断电,合盖就是停机;Modern Standby 把睡眠改成了“低功耗联网”,目的是即时唤醒和后台更新。功能本身没错,但默认策略没有区分插电和电池,也没有治理唤醒源。用户以为笔记本在休息,系统其实在包里继续上班。另一个偏差是把发热掉电直接归因于电池老化,换了电池才发现问题在策略层。

预防措施

  • 新机型入网做 sleepstudy 基线:电池模式下合盖 8 小时,Low Power Idle 应高于 85%、掉电低于 5%;不达标不批量发放。
  • 扩展坞选型增加待机行为测试,固件统一版本,避免个别型号在待机时反复唤醒主机。
  • 用 Intune 或组策略统一电池模式下的待机联网、唤醒定时器和网卡唤醒策略,不依赖员工手动设置。
  • 资产巡检把 sleepstudy 异常纳入报表:Active 占比高、夜间唤醒次数多、待机掉电超阈值的机器主动排查。
  • 给员工的指引要具体:周末和长假前关机或休眠,不要把“合盖”当成关机。

总结

Modern Standby 不是“更省电的睡眠”,而是“让电脑在合盖后继续低功耗地工作”。它把选择权交给了设备和后台任务:谁能唤醒、何时联网,决定了包里那台机器是在休息还是在加班。把唤醒源当成资产管理项,比反复争论“为什么待机还耗电”有用得多。

延伸阅读

使用 Hugo 构建
主题 Stack 由 Jimmy 设计