如何在 Windows 7 中默认禁止 USB 设备唤醒计算机

Duk*_*kem 18 windows-7 power-management

每次我插入新的鼠标/键盘或将现有的鼠标/键盘插入新的 USB 端口时,我都必须手动转到设备管理器,转到设备的属性页面,然后取消选中“允许此设备唤醒计算机” “电源管理”页面。 在此处输入图片说明

是否可以在 Windows 7 中设置系统策略,以便默认情况下不会为新的 USB 鼠标/键盘选中此框?

编辑:如果无法设置这样的系统策略,是否至少有一种方法可以通过powercfg在批处理文件中使用来枚举和禁用设备上的 USB 唤醒?

编辑 2:必须至少可以使用powercfg. powercfg devicequery wake_armed给出可以唤醒系统的所有设备的列表。现在我如何才能将此列表反馈给powercfg并禁用列出的设备上的唤醒?

小智 5

编辑 2:澄清

这个答案并没有解决其原始措辞中的问题。似乎不可能为所有未来设备禁用唤醒。此答案中的解决方案仅允许您为所有当前连接的设备禁用唤醒。

我的原答案:

这个问题似乎已经在另一个 SO 答案中得到了回答

for /F "tokens=*" %%A in ('powercfg -devicequery wake_armed') do powercfg -devicedisablewake "%%A"
Run Code Online (Sandbox Code Playgroud)

这需要以管理员身份运行。

编辑:

为了提供更完整的解决方案,这里有一个脚本,它在运行上述循环之前请求管理员权限。使用Microsoft powertoy请求管理员权限(不出所料,用 VisualBasic 编写)

@echo off
if "%~1"=="" (
  elevate %0 do
) else if "%~1"=="do" (
  for /F "tokens=*" %%A in ('powercfg -devicequery wake_armed') do (
    if not "%%A"=="NONE" (
      echo Disabling %%A
      powercfg -devicedisablewake "%%A"
    )
  )
  echo All done.
  pause
) else (
  echo Usage: %~nx0
)
Run Code Online (Sandbox Code Playgroud)