windows – 如何以编程方式启用“允许此设备唤醒计算机”?

在某些计算机上,认情况下,网络适配器配置为“允许此设备唤醒计算机”选项已关闭.因此,LAN唤醒将无法正常工作.

我需要重新启用此选项,但我不能手动执行 – 太多计算机!所以,我需要能够通过API或脚本来完成它.

(注意:这不是How to Enable Wake On LAN programmatically的副本,因为该问题与BIOS设置有关,而这个问题与操作系统设置有关.)

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

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

您可以使用以下命令查看哪些设备能够执行此操作:

powercfg -devicequery wake_from_any

您可以使用以下命令查看当前启用了哪些设备:

powercfg -devicequery wake_armed

总而言之,这是我刚刚开始用于启用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

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

相关文章

Windows2012R2备用域控搭建 前置操作 域控主域控的主dns:自...
主域控角色迁移和夺取(转载) 转载自:http://yupeizhi.blo...
Windows2012R2 NTP时间同步 Windows2012R2里没有了internet时...
Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...