Jak zabronić urządzeniom USB domyślnego wybudzania komputera w systemie Windows 7


16

Za każdym razem, gdy podłączam nową mysz / klawiaturę lub podłączam istniejącą do nowego portu USB, muszę ręcznie przejść do menedżera urządzeń, przejść do strony właściwości urządzenia i odznaczyć opcję „Zezwalaj temu urządzeniu na wybudzanie komputera” w strona „Zarządzanie energią”. wprowadź opis zdjęcia tutaj

Czy można skonfigurować zasady systemowe w systemie Windows 7, tak aby to pole nie było domyślnie zaznaczone dla nowych myszy / klawiatur USB?

Edycja: Jeśli nie ma sposobu na skonfigurowanie takiej zasady systemowej, czy istnieje przynajmniej sposób na wyliczenie i wyłączenie funkcji budzenia USB na urządzeniach za pomocą powercfgpliku wsadowego?

Edit 2: To musi być możliwe do zrobienia przynajmniej użyciu powercfg. powercfg devicequery wake_armedzawiera listę wszystkich urządzeń, które mogą obudzić system. Jak mogę teraz przesłać tę listę z powrotem powercfgi wyłączyć budzenie na wymienionych urządzeniach?


1
Możesz to wyłączyć w niektórych BIOS
ach

Niestety mój BIOS nie ma takiej opcji.
Duke Nukem,

Moje BOIS również nie ma tej opcji. Daj nam znać, jeśli znajdziesz odpowiedź - Od lat mam zwyczaj wyłączania źródła zasilania i naprawdę chciałbym to zmienić ...
Allen Pestaluky

Odpowiedzi:


3

Edycja 2: Wyjaśnienie

Ta odpowiedź nie rozwiązuje problemu w oryginalnym brzmieniu. Wyłączenie budzenia dla wszystkich przyszłych urządzeń nie wydaje się możliwe. Rozwiązanie zawarte w tej odpowiedzi umożliwia wyłączenie budzenia dla wszystkich aktualnie podłączonych urządzeń.

Moja oryginalna odpowiedź:

Wydaje się, że na to pytanie udzielono odpowiedzi w innej SO

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

To musi być uruchomione jako administrator.

Edytować:

Aby zapewnić bardziej kompletne rozwiązanie tutaj, jest skrypt, który żąda uprawnień administratora przed uruchomieniem powyższej pętli. Prawa administratora są wymagane przy użyciu narzędzia Microsoft (napisanego w VisualBasic, co nie jest zaskoczeniem)

@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
)

Spowoduje to wyłącznie wyłączenie bieżącej konfiguracji urządzeń USB, a nie wszystkich przyszłych konfiguracji, takich jak zadawane pytanie. Na przykład uruchom ten skrypt, a następnie odłącz mysz i podłącz ją z powrotem do nowego portu - mysz znów się obudzi ze stanu uśpienia, chyba że skrypt zostanie ponownie uruchomiony dla nowej konfiguracji urządzenia USB.
Allen Pestaluky

1
@AllenPestaluky pytanie zawiera zmiany, które wymagają przynajmniej częściowego rozwiązania, jeśli pełne rozwiązanie nie jest możliwe. Moja odpowiedź (i odpowiedź, do której linkuję) jest dokładnie częściowym rozwiązaniem, o które prosi OP.
SnakE,

Dzięki, ten skrypt wsadowy robi dokładnie to, co chciałem. W przyszłości mogę spróbować znaleźć sposób na zautomatyzowanie tego. Czy wiesz, czy istnieje sposób wykonywania wywołań powercfg za pośrednictwem interfejsu API systemu Windows, aby uniknąć tworzenia osobnych procesów?
Duke Nukem,

1
@DukeNukem Nie Nie znam takiego interfejsu API. Nie przeprowadziłem jednak żadnych badań, więc może nadal istnieć. Również wszystkie te ustawienia muszą znajdować się w rejestrze. Możesz więc użyć narzędzia procmonpowertoy do śledzenia, do których lokalizacji rejestru dostęp jest uzyskiwany, powercfg -devicequery wake_armedi napisania własnego narzędzia do manipulacji rejestrem.
SnakE

1

Aby odpowiedzieć na pytania w swoich edycjach:

Nie, nie można użyć powercfg do wyliczenia urządzeń w celu zmiany domyślnego zachowania obudzeń wszystkich przyszłych konfiguracji USB, tak jak zadawano w pierwotnym pytaniu.

Próbowałem użyć For /F "tokens=*" %%A in ('powercfg -devicequery wake_armed') do powercfg -devicedisablewake "%%A"skryptu, ale po podłączeniu urządzenia USB do nowego portu domyślnie powrócił do wybudzania komputera.

Próbowałem nawet wyliczyć wynik powercfg -devicequery wake_from_any, ale wydaje się, że można wyliczyć tylko podłączone urządzenia USB. Nawet wake_from_anyargument zwraca inną listę przy każdej zmianie portu, do którego podłączone jest urządzenie USB.

Aby odpowiedzieć na pierwotne pytanie:

Nie mam pojęcia. Naprawdę chcę znać odpowiedź na to pytanie, ale wciąż nie znalazłem odpowiedzi. Jeśli ktokolwiek zdoła to rozgryźć, będziecie szczerze kochani! <3


1

[ OŚWIADCZENIE ] To nie jest odpowiedź na pytanie PO, ale raczej rozwiązanie problemu, dla którego prawdopodobnie tutaj trafiłeś!

Stary wątek, ale najpierw przyszedłem tutaj po rozwiązanie, które rozwiązałem w inny sposób, a teraz dzielę się.

[ PROBLEM ] Mój problem dotyczy urządzenia USB (kontrolera xbox), który utrzymuje komputer w stanie czuwania lub budzi go, gdy tylko przejdzie w tryb uśpienia. Na początku musiałem zrobić to, o czym mówił OP, potem użyłem skryptu opublikowanego tutaj przez SnakE.

[ ROZWIĄZANIE ] Zostało poprawnie rozwiązane bez żadnych hackerskich skryptów lub ręcznych kontroli, po prostu konfigurując XHCI w BIOSie, ustawiając go z SmartAuto na Enabled.

[ BITS OF WHY ] Wymusza to na zmuszaniu kontrolera pokładowego USB do działania przez cały czas jako USB3 zamiast obniżania standardu do USB2, a następnie przełączania na USB3, gdy system operacyjny przejmuje kontrolę. Udowodnienie, że się zachowuje, rozwiązało problem ze sterownikiem urządzenia USB, który źle funkcjonuje podczas próby przejścia komputera w tryb uśpienia / hibernacji. Uruchamianie systemu Windows 10, który ma wbudowane sterowniki dla USB3 z włączonym trybem XHCI, działa bardzo dobrze, problemy mogą pochodzić z niego, jeśli uruchamiam system operacyjny, który nie obsługuje USB3.

SmartAuto nie powinien być problemem, ponieważ ( jak stwierdzono tutaj ) po pierwszym uruchomieniu kontroler powinien pozostać na USB3, ale może gdzieś jest jakiś błąd w podejmowaniu decyzji i zachowywał się jak Auto na mojej płycie głównej Asus.


To rozwiązało mój problem z odbiornikiem Logitech na laptopie ASUS. Po tej poprawce systemu BIOS (wybrałem opcję Wyłączone) musiałem również wyłączyć zdolność każdego urządzenia do ponownego wybudzania komputera w Menedżerze urządzeń.
Jim Hunziker,

-1

Wydaje się, że dokumentacja tego znanego problemu znajduje się tutaj. Podsumowanie:

Obejście 1 (zalecane)

Podłącz urządzenie USB do kontrolera hosta Enhanced Host Controller Interface (EHCI).

Obejście 2

Wyłącz zdolność urządzenia USB do wybudzania komputera. Aby to zrobić, wykonaj następujące kroki:

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.

Uwaga Zalecamy korzystanie z obejścia 1, ponieważ zachowuje ono funkcję budzenia. Podczas korzystania z obejścia 2 urządzenia USB nie mogą wybudzić komputera. Ponadto przycisk zasilania pilota zdalnego sterowania dla odbiornika podczerwieni Windows Media Center nie może obudzić komputera.


1
Dziękuję za odpowiedź, ale dokumentacja, do której linkujesz, nie jest problemem, który mam. Kroki przedstawione w obejściu 2 są dokładnie tym, co muszę zrobić za każdym razem, gdy muszę wyłączyć wybudzanie USB na urządzeniu. Chcę, aby to czuwanie było domyślnie wyłączone, więc nie muszę za każdym razem wykonywać tych kroków i nie mogłem znaleźć żadnego sposobu, aby to zrobić ...
Duke Nukem,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.