Как включить "Разрешить этому устройству пробуждать компьютер" программно?

на некоторых компьютерах сетевые адаптеры по умолчанию настроены с выключенной опцией "разрешить этому устройству разбудить компьютер". В результате Wake on LAN не будет работать.

Мне нужно снова включить эту опцию, но я не могу сделать это вручную-слишком много компьютеров! Итак, мне нужно иметь возможность сделать это через API или со скриптом.

(Примечание: это не дубликат как включить Wake On LAN программно потому что этот вопрос касается BIOS настройка, в то время как это касается настройки операционной системы.)

У меня есть ответ, уже использующий пакетный скрипт, но альтернативные решения будут очень приветствоваться, особенно если они используют API.

1 ответов


Я нашел решение на Старая Новая Вещь. The powercfg команда позволяет управлять настройками питания, и в частности вы можете использовать -deviceenablewake и -devicedisablewake для включения и выключения опции "Разрешить этому устройству разбудить компьютер".

вы можете увидеть, какие устройства способны сделать это с помощью этой команды:

powercfg -devicequery wake_from_any

вы можете увидеть, какие устройства имеют возможность в настоящее время включен через:

powercfg -devicequery wake_armed

складывая все это вместе, это пакетный скрипт, который я только что начал использовать для включения Wake on LAN:

powercfg -devicequery wake_from_any | findstr /i "network ethernet" >adapters.txt
for /F "tokens=*" %%i in (adapters.txt) do powercfg -deviceenablewake "%%i"
powercfg -devicequery wake_armed | findstr /i "network ethernet" || goto :failed

в этом случае я решил включить опцию на всех допустимых устройствах, имя которых содержит слово "сеть" или слово "ethernet"; в некоторых ситуациях, конечно, вы можете предпочесть быть более избирательным о том, какие устройства вы включаете.