Как запретить USB-устройствам по умолчанию пробуждать компьютер в Windows 7


16

Каждый раз, когда я подключаю новую мышь / клавиатуру или подключаю существующую к новому USB-порту, мне приходится вручную заходить в диспетчер устройств, переходить на страницу свойств устройства и снимать флажок «Разрешить этому устройству активировать компьютер» на страница «Управление питанием». введите описание изображения здесь

Можно ли настроить системную политику в Windows 7, чтобы по умолчанию этот флажок не устанавливался для новых USB-мышей / клавиатур?

Изменить: Если нет способа настроить такую ​​системную политику, есть ли хотя бы способ перечислить и отключить USB-пробуждение на устройствах с помощью powercfgв командном файле?

Изменить 2: Это должно быть возможно сделать , по крайней мере , используя powercfg. powercfg devicequery wake_armedдает список всех устройств, которые могут разбудить систему. Теперь, как я могу вернуть этот список обратно powercfgи отключить пробуждение на перечисленных устройствах?


1
Вы можете отключить это в некоторых BIOS (Legacy и UEFI)
бров

Мой BIOS не имеет такой возможности, к сожалению.
Duke Nukem

Мой BOIS также не имеет этой опции. Пожалуйста, дайте нам знать, если вы нашли ответ - у меня была привычка выключать мой источник питания в течение многих лет, и я действительно хотел бы изменить это ...
Аллен Песталуки

Ответы:


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 вопрос имеет правки, которые требуют хотя бы частичного решения, если полное решение невозможно. Мой ответ (и ответ, на который я ссылаюсь) - это именно то частичное решение, которое запрашивает ОП.
SnakE

Спасибо, этот пакетный скрипт делает именно то, что я хотел. Я могу попытаться найти способ автоматизировать это в будущем. Вы случайно не знаете, есть ли способ делать вызовы powercfg через Windows API, чтобы избежать порождения отдельных процессов?
Герцог 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

[ ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ ] Это не ответ на вопрос ОП, а скорее решение проблемы, для которой вы, вероятно, оказались здесь!

Старый поток, но я пришел сюда в первую очередь для решения, которое я в конечном итоге решил по-другому, и теперь я делюсь.

[ ПРОБЛЕМА ] Моя проблема была связана с тем, что USB-устройство (контроллер xbox) не давало компьютеру проснуться или разбудить его, как только он перешел в спящий режим. Сначала мне нужно было сделать то, о чем говорил OP, после этого я использовал скрипт, размещенный здесь SnakE.

[ РЕШЕНИЕ ] Это было решено должным образом без каких-либо хакерских сценариев или ручного управления, просто путем настройки XHCI в BIOS, установив его из SmartAuto в значение Enabled.

[ БИТЫ ПОЧЕМУ ] Это заставляет контроллер USB на плате постоянно работать как USB3, а не понижать до USB2, а затем переключаться на USB3, когда ОС получает контроль. Принудительное поведение заставило себя решить проблему с драйвером USB-устройства, когда он пытался перевести компьютер в спящий режим / режим гибернации. Запуск Windows 10 со встроенными драйверами для USB3, поддерживающими режим XHCI, работает очень хорошо, поэтому при загрузке некоторых ОС, не поддерживающих USB3, могут возникнуть проблемы.

SmartAuto не должно было быть проблемой, потому что ( как указано здесь ) после первой загрузки контроллер должен оставаться на USB3, но, возможно, где-то в процессе принятия решения есть ошибка, и он вел себя как Auto на моей материнской плате Asus.


Это исправило мою проблему с приемником Logitech на ноутбуке ASUS. После этого исправления BIOS (я выбрал Отключено), мне также пришлось отключить возможность каждого устройства снова разбудить компьютер в диспетчере устройств.
Джим

-1

Это, кажется, известная проблема документация может быть найдена здесь Резюме:

Обходной путь 1 (рекомендуется)

Подключите устройство USB к хост-контроллеру Enhanced Host Controller Interface (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 не может разбудить компьютер.


1
Спасибо за ваш ответ, но документация, на которую вы ссылались, не является проблемой, с которой я столкнулся. Шаги, которые вы показываете в обходном решении 2, - это именно то, что я должен делать каждый раз, когда мне нужно отключить пробуждение USB на устройстве. Я хочу, чтобы этот пробуждение было отключено по умолчанию, поэтому мне не нужно делать эти шаги каждый раз, и я не мог найти никакого способа сделать это вообще ...
Duke Nukem
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.