How do I enable "Allow this device to wake the computer" programmatically?
I found a solution on The Old New Thing. The powercfg
command allows you to manipulate power settings, and in particular you can use the -deviceenablewake
and -devicedisablewake
to turn on and off the "Allow this device to wake the computer" option.
You can see which devices are capable of doing this with this command:
powercfg -devicequery wake_from_any
You can see which devices have the option currently enabled using:
powercfg -devicequery wake_armed
Putting it all together, this is the batch script I've just started using to enable Wake on LAN:
powercfg -devicequery wake_from_any | findstr /i "network ethernet" >adapters.txtfor /F "tokens=*" %%i in (adapters.txt) do powercfg -deviceenablewake "%%i"powercfg -devicequery wake_armed | findstr /i "network ethernet" || goto :failed
In this case, I've chosen to enable the option on all valid devices whose name contains the word "network" or the word "ethernet"; in some situations, of course, you might prefer to be more selective about which device(s) you enable.