On some computers, the network adapters are, by default, configured with the “allow this device to wake the computer” option turned off. As a result, Wake on LAN won’t work.
I need to turn this option back on, but I can’t do it by hand – too many computers! So, I need to be able to do it via an API or with a script.
(Note: this is not a duplicate of How to Enable Wake On LAN programmatically because that question is about the BIOS setting whereas this one is about the operating system setting.)
I have an answer already using a batch script, but alternative solutions would be very welcome, especially if they use an API.
I found a solution on The Old New Thing. The
powercfgcommand allows you to manipulate power settings, and in particular you can use the-deviceenablewakeand-devicedisablewaketo 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:
You can see which devices have the option currently enabled using:
Putting it all together, this is the batch script I’ve just started using to enable Wake on LAN:
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.