如何在Windows 7中默认情况下不允许USB设备唤醒计算机


16

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

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

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

编辑2:已经是可能使用至少做powercfgpowercfg devicequery wake_armed给出了可以唤醒系统的所有设备的列表。现在,我如何才能将此列表反馈回去,powercfg并使其在列出的设备上禁用唤醒功能?


1
您可以在某些BIOS(旧版和UEFI)中禁用此功能
仅浏览

不幸的是,我的BIOS没有这样的选项。
公爵努克

我的BOIS也没有此选项。如果您找到了答案,请告诉我们-我多年来一直在关闭电源,并且我真的想改变一下……
Allen Pestaluky 2015年

Answers:


3

编辑2:澄清

该答案不能解决其原始措词中的问题。似乎无法为所有将来的设备禁用唤醒功能。此答案中的解决方案仅允许您禁用所有当前连接的设备的唤醒。

我的原始答案:

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

for /F "tokens=*" %%A in ('powercfg -devicequery wake_armed') do powercfg -devicedisablewake "%%A"

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

编辑:

为了提供更完整的解决方案,这里是一个脚本,该脚本在运行上述循环之前要求管理员特权。使用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
)

这只会禁用USB设备的当前配置,而不会禁用所有以后的配置(如要求的问题)。例如,运行此脚本,然后拔下鼠标,然后将其重新插入新端口-鼠标将再次从睡眠中唤醒,除非针对新的USB设备配置再次运行此脚本。
艾伦·佩斯塔鲁基

1
@AllenPestaluky,问题有修改,如果不可能提供完整的解决方案,则至少要求部分解决方案。我的答案(以及我链接到的答案)正是OP所要求的部分解决方案。
SnakE 2015年

谢谢,此批处理脚本完全符合我的要求。我将来可能会尝试找到一种自动化的方法。您是否会知道是否有办法通过Windows API进行powercfg调用,以避免产生单独的进程?
Nukem公爵

1
@DukeNukem不,我不知道这样的API。我没有做任何研究,所以它可能仍然存在。所有这些设置也必须在注册表中。因此,您可以使用procmonpowertoy来跟踪访问哪些注册表位置,powercfg -devicequery wake_armed并编写自己的注册表操作工具。
SnakE

1

在编辑中回答问题:

不,您不能使用powercfg枚举设备来更改所有未来 USB配置的默认唤醒行为,就像您在原始问题中所问的那样。

我尝试使用For /F "tokens=*" %%A in ('powercfg -devicequery wake_armed') do powercfg -devicedisablewake "%%A"脚本,但是将USB设备插入新端口后,默认情况下会唤醒计算机。

我什至尝试枚举的结果powercfg -devicequery wake_from_any,但看来您只能枚举连接的 USB设备。wake_from_any每次更改USB设备插入的端口时,即使参数也会返回不同的列表。

要回答您的原始问题:

我不知道。我真的很想知道答案,但是我仍然没有找到答案。如果有人能弄清楚这一点,那么您将深深地被爱!<3


1

[ 免责声明 ]这不是对OP问题的答案,而是对您可能最终在此处遇到的问题的解决方案!

旧线程,但我首先来这里是为了寻求解决方案,但最终我以另一种方式解决了问题,现在我要分享。

[ 问题 ]我的问题是USB设备(xbox控制器)使PC保持睡眠状态,或者一旦进入睡眠状态就将其唤醒。最初,我最终需要做OP所谈论的事情,之后,我使用了SnakE在此处发布的脚本。

[ 解决方案 ]仅通过在bios中配置XHCI并将其从SmartAuto设置为Enabled即可正确解决此问题,而无需任何恶意脚本或手动控制。

[ 为什么BITS ]什么做这迫使USB板控制器上充当USB3所有的时间,而不是降级到USB2,然后切换到USB3当OS取得控制权。在尝试将PC转换为睡眠/休眠状态时,强迫它的行为被证明可以解决我的USB设备驱动程序异常的问题。运行Windows 10,该Windows 10内置了用于启用XHCI模式的USB3驱动程序,如果启动某些不支持USB3的操作系统,我的问题就出在此。

SmartAuto不应成为问题,因为(如此处所述)在第一次启动后,控制器应停留在USB3上,但在决策过程中可能存在某个错误,并且在我的华硕主板上表现为“自动”。


这解决了我在ASUS笔记本电脑上使用Logitech接收器的问题。修复此BIOS(我选择“禁用”)之后,我还必须关闭每个设备再次在“设备管理器”中唤醒计算机的功能。
Jim Hunziker

-1

似乎可以在这里找到已知问题的文档 摘要:

解决方法1(推荐)

将USB设备插入增强型主机控制器接口(EHCI)主机控制器。

解决方法2

禁用USB设备唤醒计算机的功能。为此,请按照下列步骤操作:

Click Start
Start button
, right-click Computer, and then click Manage.
In the User Account Control dialog box, click Continue.

User Account Control permission
If you are prompted for an administrator password or for a confirmation, type the password, or click Allow.
Click Device Manager, expand Universal Serial Bus controllers, right-click the device, and then click Properties.
Click the Power Management tab, disable the Allow this device to wake the computer check box, and then click OK.

注意我们建议您使用替代方法1,因为它保留了唤醒功能。当您使用替代方法2时,USB设备无法唤醒计算机。此外,Windows Media Center IR接收器的远程控制电源按钮无法唤醒计算机。


1
感谢您的回答,但是您链接到的文档不是我遇到的问题。解决方法2中显示的步骤恰恰是我每次需要在设备上禁用USB唤醒时都必须执行的操作。我想要的是默认情况下禁用此唤醒功能,因此我不必每次都执行这些步骤,而且根本找不到任何方法来执行此操作……
Duke Nukem
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.