2022 年 9 月 13 日:我的电脑有时会自动进入睡眠状态,有时会整晚保持睡眠状态。其他晚上它会一直开着。有时在白天,如果我离开的时间足够长,我也会遇到同样的问题 - 有时它会进入睡眠状态,有时不会。不知道是什么原因造成的,这显然与网络有关,但我不知道如何使用 Wireshark 之类的工具来追踪网络流量,以找出是什么原因造成的。
我有一台运行 Windows 11 64 位 Pro 的新电脑,几天前新安装并应用了所有更新。不知为何,它会在几秒到几分钟后从睡眠状态自动唤醒。
我已经运行了以下命令,但它们均未指示任何阻止计算机睡眠或唤醒的命令:
- powercfg -请求-无
- powercfg -devicequery wake_armed(网络设置为允许在新计算机上进行局域网唤醒,但睡眠之前已在此计算机上工作。Bios 设置为“唤醒事件:Bios”和“通过 PCI-E 设备恢复:已启用”)
- powercfg -waketimers - 没有活动的唤醒计时器
- powercfg -energy - 显示没有什么可以阻止计算机进入睡眠状态
- powercfg -lastwake - 显示唤醒历史计数 1,但没有其他内容
计算机的显示屏关闭(但屏幕保护程序从未打开,即使它应该打开?) - 它进入睡眠状态但不久后唤醒。
我已将 Plex 设置为允许局域网唤醒,但除非它正在运行,否则它不会显示在 -requests 上。我已检查设备管理器并关闭了除以太网之外的所有设备上的“允许此设备唤醒此计算机”设置。
计算机的事件查看器中有以下内容:
来源:Power-Troubleshooter,事件ID:1
系统
- 提供者
[名称] Microsoft-Windows-Power-Troubleshooter [Guid] {cdc05e28-c449-49c6-b9d2-88cf761644df} EventID 1 版本 3 级别 4 任务 0 操作码 0 关键字 0x8000000000000000
- 创建时间
[系统时间] 2022-09-06T14:52:08.9667189Z 事件记录ID 3161
- 相关性
[活动 ID] {047fc231-274e-4d23-9f8e-4d44e437520d}
- 执行
[ 进程 ID] 5184 [ 线程 ID] 37880 通道系统计算机 JonsDesktop
- 安全
[ 用户 ID] S-1-5-19
事件数据
睡眠时间 2022-09-06T14:51:51.4732916Z 唤醒时间 2022-09-06T14:52:07.9343569Z 睡眠持续时间 772 唤醒持续时间 1433 驱动程序初始化持续时间 1365 BiosInitDuration 1530 HiberWriteDuration 0 HiberReadDuration 0 HiberPagesWritten 0 属性 1979728896 目标状态 4 有效状态 4 唤醒源类型 0 唤醒源文本长度 0 唤醒源文本 唤醒定时器所有者长度 0 唤醒定时器上下文长度 0
无
多阶段恢复恢复 0
唤醒定时器所有者 唤醒定时器上下文 检查点持续时间 134
*我的电脑有以下设置 - 屏幕保护程序开启 10 分钟,显示器关闭 15 分钟,睡眠 30 分钟。混合睡眠已关闭,禁止唤醒定时器等。
我如何才能确定是什么触发了我的计算机唤醒?我假设这与局域网唤醒有关,但我搞不清楚是什么。我几乎关闭了除 Windows 11 默认自带的服务、程序等之外的所有服务、程序等,但这种情况仍然会发生。我还拔掉了每个 USB 设备(键盘、鼠标、耳机),但它仍然会唤醒。
答案1
这些额外措施可能会有所帮助:
暂停更新设置 > Windows 更新并更改活动时间 高级选项 > 活动时间。
运行本地组策略编辑器, 计算机配置 > 管理模板 > Windows 组件 > Windows 更新,双击“启用Windows更新电源管理”,并将其设置为已禁用。
禁用自动维护:在开始菜单中,搜索“自动维护”,然后更改运行时间或通过取消选中底部的框来禁用。
防止网络活动唤醒计算机:运行设备管理器,找到网络适配器“网络适配器”。右键单击它,选择属性,然后在电源管理选项卡中取消选中“允许此设备唤醒计算机”。这也会禁用局域网唤醒。
禁用可能唤醒计算机的计划任务:运行 PowerShell 并输入命令
Get-ScheduledTask | where {$_.settings.waketorun}
。在任务计划程序中禁用,双击该任务,然后在条件选项卡中取消选中“唤醒计算机以运行此任务”。要检测网络上的 WOL 包,你可以使用 Wireshark 将过滤器设置为
wol
。这可以通过检查 WOL 包来帮助检测原始设备。
答案2
要检查是什么唤醒了 Windows,请使用命令powercfg -lastwake
-Friendly name:
您将获得软件或硬件名称。
然后将其关闭,计算机就不会因为这个原因而被唤醒。
根据我的经验,我需要在控制面板的电源选项中关闭~ Timer wakeup
,因为有一些服务会唤醒计算机。
另外还有硬件唤醒,在设备管理器中我需要关闭该硬件的唤醒。
以上两种方法都可以让计算机按照您的需要进入睡眠状态。
答案3
还要注意,Windows 事件日志和 powercfg 有时会报告错误的唤醒源。这似乎是一个已知多年的错误。我有一台 PC 在 LAN 上唤醒,但事件日志报告它是电源按钮。
答案4
几年来,我使用了 2 个冷却风扇,浪费了大量的时间和精力,似乎已经解决了 ACPI 唤醒警报问题。我做了上述所有操作,有时直到下一次更新才有用,但我从未能够定期让我的电脑保持睡眠状态。powercfg -lastwake 总是会产生以下结果:powercfg -lastwake 唤醒历史记录计数 - 1 唤醒历史记录 [0] 唤醒源计数 - 1 唤醒源 [0] 类型:设备实例路径:ACPI\ACPI000E\2&daba3ff&0 友好名称:描述:ACPI 唤醒警报制造商:(标准系统设备
要解决此问题,请打开注册表编辑器,搜索 ACPI000E,它应该在第 021 行,您会找到“ACPI Wake Alarm”。删除此条目。4 天以来,我的电脑一直按预期休眠。