可通过powercfg命令查询唤醒设备:-devicequery wake_armed列出已启用唤醒的设备,-devicequery wake_programmable显示所有可唤醒设备,-lastwake查看最近唤醒源;powershell可结构化处理结果并支持禁用/启用指定设备唤醒权限。

可以通过 Windows 系统内置的命令行工具查询哪些设备具有唤醒计算机的能力,并查看当前是否被允许唤醒、以及最近一次唤醒来源。无需编程,但若需在脚本或程序中调用,可结合 PowerShell 或 CMD 命令实现自动化查询。
查看所有支持唤醒的设备及状态
在管理员权限的 PowerShell 或 CMD 中运行以下命令:
powercfg -devicequery wake_armed
该命令列出当前被启用“唤醒功能”的设备(如键盘、鼠标、网卡等)。如果返回空,说明没有设备被授权唤醒电脑。
补充查看全部可唤醒设备(不管是否启用):
powercfg -devicequery wake_programmable
检查最近一次唤醒原因
运行以下命令可查出系统上次被哪个设备或事件唤醒:
powercfg -lastwake
输出示例:
Wake History Count - 1
Wake History [0]
Wake Source: Device - USB Composite Device
说明是某个 USB 设备(比如带唤醒功能的鼠标)触发了唤醒。
用 PowerShell 获取结构化信息(适合集成到脚本)
PowerShell 可更灵活地解析和筛选结果。例如获取所有 wake_armed 设备并导出为数组:
$armed = powercfg -devicequery wake_armed | Where-Object { $_.Trim() -ne '' }<br>if ($armed) {<br> Write-Host "当前启用唤醒的设备:" -ForegroundColor Green<br> $armed | ForEach-Object { Write-Host " → $_" }<br>} else {<br> Write-Host "暂无设备被授权唤醒" -ForegroundColor Yellow<br>}还可进一步结合 Get-PnpDevice 获取设备详细信息(如硬件 ID、驱动状态):
$armed | ForEach-Object {<br> Get-PnpDevice | Where-Object {$_.Name -eq $_}<br>}禁用/启用某设备的唤醒权限(按需操作)
若发现误唤醒,可通过命令临时关闭指定设备的唤醒能力:
powercfg -devicedisablewake "USB Composite Device"
启用则用:
powercfg -deviceenablewake "USB Composite Device"
注意:设备名称须与 powercfg -devicequery 输出完全一致,区分大小写;建议先用 powercfg -list 或设备管理器确认准确名称。











