在某些计算机上,默认情况下,网络适配器配置为关闭“允许此设备唤醒计算机”选项。因此,局域网唤醒将不起作用。
我需要重新打开此选项,但我无法手动操作 - 计算机太多!所以,我需要能够通过 API 或脚本来完成。
(注意:这不是如何以编程方式启用 LAN 唤醒的副本,因为这个问题是关于 BIOS 设置的,而这个问题是关于操作系统设置的。)
我已经使用批处理脚本得到了答案,但是非常欢迎替代解决方案,特别是如果他们使用 API。
在某些计算机上,默认情况下,网络适配器配置为关闭“允许此设备唤醒计算机”选项。因此,局域网唤醒将不起作用。
我需要重新打开此选项,但我无法手动操作 - 计算机太多!所以,我需要能够通过 API 或脚本来完成。
(注意:这不是如何以编程方式启用 LAN 唤醒的副本,因为这个问题是关于 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”的所有有效设备上启用该选项;当然,在某些情况下,您可能更愿意选择启用哪些设备。