前述
最近重新安装了一下电脑系统(Windows11 23H2),一通操作猛如虎,因为有远程开机并使用电脑的需求,发现电脑睡眠一段时间后无法远程连接Windows了(客户端:Microsoft Remote),并且使用远程唤醒也失效了。
排查
找到电脑网卡:Realtek PCIe GbE Family Controller,点击属性查看“电源管理”选项
电源管理:
✔ 允许计算机关闭此设备以节约电源(A)
✔ 允许此设备唤醒计算机(O)
▢ 只允许幻数据包唤醒计算机(N)
电脑正常关机时,可以唤醒;若上述(O)项未开启,电脑在睡眠状态无法唤醒。
查资料
总结规律发现电脑睡眠后一段时间自动关机(休眠)了,时间是三个小时,测试发现确实是睡眠一定时间后会自动休眠,此时电脑无法远程唤醒,也无法通过键盘鼠标等唤醒,需要按电源键进行唤醒。按下电源键后,电脑出现开机画面,并且自动恢复到睡眠前的状态,应用程序均和睡眠前一致。
注:这个状态和设置下,插拔网线也是可以唤醒电脑的。
查询后发现这是Windows修改了机制1,将睡眠一段时间后休眠设为了默认启用,用途就是为了节约电源,且保护电脑电池。使用场景:当使用者在明确自己离开一段时间后可能无法回来给电脑充电或无法在近期再次使用电脑时,可以自动进入休眠状态(类似于快速启动选项开启后的关机状态)2。
解决方法
使用powercfg代码
微软给出的方法之一,使用命令行直接禁用休眠3,以管理员身份运行PowerShell,输入下方代码开启或者关闭休眠:
//开启
>powercfg /hibernate on
//关闭
>powercfg /hibernate off
以下是关闭前以及关闭后的效果
//关闭前
> powercfg -a
此系统上有以下睡眠状态:
待机 (S3)
休眠
混合睡眠
此系统上没有以下睡眠状态:
待机 (S1)
系统固件不支持此待机状态。
待机 (S2)
系统固件不支持此待机状态。
待机(S0 低电量待机)
系统固件不支持此待机状态。
快速启动
当前系统策略禁用此动作。
//关闭后
> powercfg -a
此系统上有以下睡眠状态:
待机 (S3)
此系统上没有以下睡眠状态:
待机 (S1)
系统固件不支持此待机状态。
待机 (S2)
系统固件不支持此待机状态。
休眠
尚未启用休眠。
待机(S0 低电量待机)
系统固件不支持此待机状态。
混合睡眠
休眠不可用。
快速启动
休眠不可用。
在电源选项中进行设置
指定系统是否使用系统范围的唤醒计时器功能4。
如果说想要禁止睡眠一段时间后自动休眠,在“电源选项-更改计算机睡眠时间-更改高级电源设置”中,找到“睡眠”,“睡眠”下的栏目修改如下:
- 睡眠
- 在此时间后休眠
- 使用电池:30 分钟
- 接通电源:0分钟 (默认:180,改为0表示从不)
- 在此时间后休眠
因为我没有关电脑的习惯,这个功能正好契合了我的需求,那就只要解决休眠后也能正常远程唤醒就行。按如下修改参数就行: 只能改为从不休眠
睡眠在此时间后睡眠使用电池:15 分钟接通电源:60 分钟 (默认:45)
允许混合睡眠使用电池:禁用接通电源:禁用
在此时间后休眠使用电池:30 分钟接通电源:120 分钟 (默认:180)
允许使用唤醒定时器使用电池:禁用接通电源:启用(默认:仅限重要的唤醒计算器)