由于高灵敏度游戏鼠标(如 Razer)、网络共享、Windows Update 等原因,即便让电脑进入睡眠状态,也会出现“几秒钟后自动唤醒(或者根本不睡眠)”的现象。以下是我为了 通过 PowerShell 彻底根除这些原因 而总结的日志和命令。
这是一份为觉得在 GUI 中指指点点很麻烦的人准备的 CLI 处方。
1. 现状确认(锁定真凶)
首先,确认“最近是什么原因唤醒了电脑”以及“目前谁有权唤醒电脑”。
以 管理员权限 打开 PowerShell,并执行以下命令:
# 确认最近的唤醒因素
powercfg -lastwake
# 显示当前拥有唤醒权限的设备列表
powercfg -devicequery wake_armed
常见真凶:
HID-compliant mouse/Razer DeathAdder...(鼠标震动检测)Intel(R) Ethernet Controller...(网络唤醒 Wake-on-LAN 或数据包接收)UpdateOrchestrator(Windows Update 的维护任务)
2. 防止鼠标/键盘误触发(Razer 等)
高 DPI 鼠标即使是桌面的轻微震动或空调的风,也会被判定为“操作”,从而解除睡眠。 从设备管理器中寻找很麻烦,所以直接指定设备名称来剥夺其权限。
# 指定特定设备并禁用(名称使用 devicequery 中确认的名称)
powercfg -devicedisablewake "Razer DeathAdder V4 Pro"
powercfg -devicedisablewake "HID-compliant mouse"
【推荐】脚本一键禁用鼠标类设备
由于 Razer 产品等有时会作为虚拟设备生成多个“HID 准合规鼠标”,因此一键禁用更为稳妥。 ※ 请注意:不要禁用键盘,否则除了电源键外将无法唤醒电脑。
# 剥夺所有定点设备(鼠标类)的唤醒权限
Get-CimInstance Win32_PointingDevice | ForEach-Object {
$name="$_.Name"
Write-Host "Disabling wake for: "$name'
powercfg -devicedisablewake '$name"}
3. 防止网络/文件共享导致唤醒
如果开启了媒体服务器功能或文件共享,电脑会被来自其他设备的访问检查所吵醒。
禁用网络适配器
# 禁止通过以太网等网络适配器解除睡眠
Get-NetAdapter | ForEach-Object {
# 禁用魔术封包唤醒 (Wake on Magic Packet) / 模式匹配唤醒 (Pattern Match)
Set-NetAdapterPowerManagement -Name $_.Name -WakeOnMagicPacket Disabled -WakeOnPattern Disabled
}
设置为“媒体共享中”也允许睡眠
Windows 默认设置为“媒体共享时不睡眠(离开模式 Away Mode)”。强制将其更改为“允许睡眠”。
# 将“共享媒体时”的设置改为“允许计算机进入睡眠状态”
powercfg -setacvalueindex SCHEME_CURRENT 9596fb26-9850-41fd-ac3e-f7c3c00afd4b 03680956-93bc-4294-bba6-4e0f09bb717f 0
powercfg -setactive SCHEME_CURRENT
4. 防止 Windows Update / 维护任务暴走
诸如 UpdateOrchestrator 之类的任务,即使想在任务计划程序中禁用,也往往会显示 “访问被拒绝” ,连管理员权限也无法停止。
因此,我们的终极方案是禁用整个系统使用“唤醒定时器 (Wake Timers)”的权限。
# 禁用接通电源时的唤醒定时器
powercfg -setacvalueindex SCHEME_CURRENT 238c9fa8-0aad-41ed-83f4-97be242c8f20 bd3b7180-0530-45fb-8885-af2718140a23 0
# 禁用使用电池时的唤醒定时器
powercfg -setdcvalueindex SCHEME_CURRENT 238c9fa8-0aad-41ed-83f4-97be242c8f20 bd3b7180-0530-45fb-8885-af2718140a23 0
# 应用设置
powercfg -setactive SCHEME_CURRENT
番外篇:用 AutoHotkey 确保关闭显示器
如果想通过 Win + z 等快捷键立即关闭显示器,往往会遇到释放按键瞬间的信号导致显示器立即恢复开启的问题。窍门是先用 BlockInput 屏蔽输入再执行。
; Win + z 关闭显示器
#z::
; 为了防止因鼠标等输入导致立即恢复,暂时屏蔽输入
BlockInput, On
; 等待按键完全释放
KeyWait, z
KeyWait, LWin
KeyWait, RWin
; 以防万一增加缓冲(等待鼠标传感器稳定)
Sleep, 1000
; 关闭显示器电源 (0xF170 = SC_MONITORPOWER, 2 = Off)
SendMessage, 0x112, 0xF170, 2,, Program Manager
; 解除输入屏蔽
BlockInput, Off
Return
总结
- 鼠标 :高灵敏度传感器会因震动触发唤醒,必须禁用。
- 网络 :经常漏掉文件共享设置导致的睡眠受阻。
- Windows Update :禁用任务会报错,所以要用
Wake Timers设置来封杀。
至此,终于从半夜电脑自己发光的灵异现象中解脱出来了。






⚠️ コメントのルール
※違反コメントはAIおよび管理者により予告なく削除されます
まだコメントがありません。最初のコメントを投稿しましょう!