2012-07-31 161 views
6

在某些计算机上,网络适配器在默认情况下配置为“允许此设备唤醒计算机”选项关闭。结果,局域网唤醒将不起作用。如何以编程方式启用“允许此设备唤醒计算机”?

我需要打开这个选项回去的,但我不能用手做 - 太多的电脑!所以,我需要能够通过API或脚本来完成。

(注:因为这个问题是关于BIOS设置,而这一次是关于操作系统的设置,这是不是How to Enable Wake On LAN programmatically一式两份)

我已经使用批处理脚本的答案,但替代解决方案会非常受欢迎,特别是如果他们使用API​​。

回答

11

我在The Old New Thing上找到了解决方案。使用powercfg命令可以控制电源设置,特别是您可以使用-deviceenablewake-devicedisablewake打开和关闭“允许此设备唤醒计算机”选项。

你可以看到哪些设备是能够用这个命令这样做的:

powercfg -devicequery wake_from_any 

你可以看到哪些设备可以选择当前使用支持:

powercfg -devicequery wake_armed 

全部放在一起,这是我刚开始使用的启用网络唤醒的批处理脚本:

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 

在这种情况下,我选择在名称中包含单词“network”或单词“ethernet”的所有有效设备上启用该选项;在某些情况下,当然,您可能更愿意选择启用哪种设备。