2012-07-31 160 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」的所有有效設備上啓用該選項;在某些情況下,當然,您可能更願意選擇啓用哪種設備。