重新启用已被 inf 文件禁用和隐藏的 Realtek NIC 驱动程序的 S5WakeOnLan 设置

重新启用已被 inf 文件禁用和隐藏的 Realtek NIC 驱动程序的 S5WakeOnLan 设置

为了能够将 PC 从 S5“关机”状态唤醒,操作系统必须在系统关机期间准备 NIC。对于 Realtek NIC,此操作由“Realtek PCIe GBE 系列控制器”驱动程序完成,但前提是启用了S5WakeOnLan“关机唤醒局域网”选项。此设置位于HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}0000 和 0012 之间不可预测的子项中。

我发现驱动程序的 .inf 文件控制此选项的默认值,以及它是否在 UI 中可见。在 2008 年的一个旧示例中,该设置默认为“1”,并且对所有型号都可见。最新版本针对单个 NIC 型号有类别,例如

  • [s5wol.reg]- 可见且默认为 '1'
  • [s5wol.reg]- 隐藏且默认为“0”(有故障?于 2015-04-06 发现)
  • [s5wolhidedisable.reg]- 隐藏并设置为“0”
  • [s5wolhideenable.reg]- 隐藏并设置为“1”
  • [s5wolhidetype2.reg]- 隐藏并设置为“2”?!?!

我对我管理的 PC 进行了调查,发现我遇到了上述所有问题。最初,我只是手动设置S5WakeOnLan为 1,它工作得很好,持续了一年多。几台旧的 Vista PC有时在开机或重启时挂起,这可能是 Realtek 禁用它的原因(也可能是由不相关的因素引起的)。我找不到相关文档。

问题是,每次操作系统决定重新安装网卡驱动程序(升级到 Win10、驱动程序更新、似乎每年两次的每次重大操作系统更新)时,设置都会恢复为默认设置,并且无法再远程打开 PC。我已经不得不在所有受影响的 WIn10 机器上多次修复这个问题,而这已经成为一个持续的负担。

半年的时间足以让我忘记这仍然存在,所以当它真的发生时,它会打乱我的维护计划,因为我必须等待一天多才能物理打开 PC,然后远程修补注册表,然后再次等待 PC 关闭并打开,以便注册表更改生效。我想摆脱这个问题,但到目前为止,我想到的唯一解决方法是将组策略注册表规则推S5WakeOnLan = 1入每个数字子项中。

答案1

长期解决方案是让 Microsoft 将 Windows 更新服务器上托管的驱动程序包更新到足够新的版本,这样它们就不会再出现问题了。随着时间的推移,我观察到这种情况实际上是逐渐发生的。今天我得出结论,我所有最初受影响的 PC 现在都在驱动程序 UI 中显示该设置。有些仍然默认为禁用,但现在应该会在操作系统升级过程中保留对设置的更改。所以对我来说,问题已经解决了。

尽管我仍然不知道如何向微软报告有缺陷的软件包以便能够修复它们。

答案2

我知道这是一篇老帖子,但由于我遇到了同样的问题,并且不想弄乱数百台电脑上的控制器设置,所以我在所有电脑的登录脚本中执行以下操作:

(1)将注册表项 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class{4D36E972-E325-11CE-BFC1-08002bE10318} 导出到文件

(2)使用搜索和替换程序来更新 WOL 工作所需的值

(3)导入注册表文件

对于我们来说,这样问题就得到永久解决了。

相关内容