我可以强制 Windows 仅通过按下电源按钮从睡眠状态唤醒或手动允许设备列表(而不是自动授予唤醒权限)吗?

我可以强制 Windows 仅通过按下电源按钮从睡眠状态唤醒或手动允许设备列表(而不是自动授予唤醒权限)吗?

当我将电脑置于睡眠状态时,它总是会意外唤醒。当我检查哪些设备可以唤醒它时,我得到了这个列表。

PS C:\> powercfg /devicequery wake_armed

HID-compliant mouse
HID-compliant mouse (001)
Realtek PCIe GbE Family Controller
HID Keyboard Device (007)
HID Keyboard Device (008)
Razer DeathAdder V2 Pro (006)
Razer DeathAdder V2 Pro (007)
HID Keyboard Device (009)
HID Keyboard Device (010)

我曾经powercfg /DEVICEDISABLEWAKE删除了所有可能导致意外唤醒的项目,现在我得到了这个:

PS C:\> powercfg /devicequery wake_armed

Realtek PCIe GbE Family Controller

我的电脑现在可以安静地处于睡眠状态,直到我按下电源按钮,但是,像大多数人一样,我倾向于购买可以通过 USB 插入电脑的设备。

必须手动将项目包含到这个列表中有点烦人,我宁愿让整个 USB 主机控制器不被允许唤醒我的电脑。

这可能会产生一些意想不到的后果,因此是否可以制定一条总体规则,只有按下电源按钮(或通过以太网的魔术包)才允许从睡眠状态唤醒。

或者是否有办法将设备输入到“允许唤醒我的计算机”的设备允许列表中,而不是自动允许它们?

答案1

我遇到了同样的问题,我需要停用所有设备,因为我的电脑会随机从睡眠状态唤醒。(Windows 10)

我编写了一个小型 powershell 脚本来自动化该过程。希望它能有所帮助:

$wakeDevices = powercfg -devicequery wake_armed

if ($wakeDevices -eq "NONE") {
    Write-Host "No devices found that can wake the PC from sleep."
    exit
}

foreach ($deviceID in $wakeDevices) {
    if ([string]::IsNullOrWhiteSpace($deviceID)) {
        # No idea why, but sometimes the deviceID is empty
        continue
    }

    $confirmMessage = "Do you want to disable the device [$deviceID] (Y/N)"
    $response = Read-Host -Prompt $confirmMessage

    if ($response -eq "Y" -or $response -eq "y") {
        Write-Host "Disabling device [$deviceID]"
        powercfg -devicedisablewake $deviceID
    }
}

Write-Host "Done."

将代码保存为 ps1 文件并从 powershell 运行它(以管理员身份)。

相关内容