Windows 网络设置服务 (NetSetupSvc) 每隔几分钟启动和停止一次,淹没系统日志

Windows 网络设置服务 (NetSetupSvc) 每隔几分钟启动和停止一次,淹没系统日志

NetSetupSvc 是用于安装网络驱动程序和管理低级网络设置的辅助服务。它通过 RPC 触发启动,并在 3 秒后自动停止。在正常运行期间,此服务从未使用过。在我看来,它似乎仅由备份和监控软件触发。

在我检查的所有 HPE ProLiant 服务器上,我注意到系统日志记录服务每 6 分钟 3 秒启动和停止一次,然后几秒钟后再次启动。这每天会产生大约 500 个额外的日志条目,并使这些服务器上的日志量增加四倍。这大大减少了日志保留时间(从 1 年到 3 个月),并使系统日志变得混乱。

这里的原因是无代理管理服务 (AMS),它每 2 分钟轮询一次系统状态(可配置为 10 秒至 10 分钟),以便 iLO BMC 可以显示它并通过 SNMP 转发它。除其他外,它通过查询 WMI 收集 MAC、ip/子网、VLAN 和端口组合信息,而 WMI 似乎使用 NetSetupSvc 来回答这些查询。

我对如何处理他的想法是:

  1. 防止网络设置服务在空闲时停止。- 没有记录下来的方法来做到这一点。即使设置为自动启动,服务仍然会停止。
  2. 将服务控制管理器从系统日志的日志收集中排除。——这应该可以在某些地方完成,但它会完全抑制所有服务活动,这可能会妨碍系统问题的故障排除。
  3. 禁用无代理管理服务。- 如果不需要监控功能,可以执行此操作。这会导致在各种 iLO 菜单中显示灰色信息框。
  4. 让 HPE 修改他们的监控软件。——我找不到有关此低级网络状态是否可以通过其他方式获得的信息。

这主要是 Windows 的一个缺陷。最初,服务始终处于开启状态,在系统运行期间启动和停止服务被认为是不寻常的,值得记录。后来,资源优化将各种服务更改为通过任务调度程序和触发事件手动启动/停止。这会产生日志噪音,并使故障排除变得不方便(无需编写自定义 xml 搜索过滤器)。我注意到在 Windows 11 中,服务启动/停止日志消息完全消失了。

答案1

反编译 NetSetupSvc.dll!NetSetupService::Initialize() 会发现它会检查“HKLM\System\CurrentControlSet\Control\NetworkSetup2\Parameters”中是否存在可选设置“NetSetupSvcIdleTimeout”,如果未找到则默认为“3”。如果我使用 TrustedInstaller 权限写入此设置并将其设置为 0xffffffff,则服务永远不会停止。这是在操作系统级别解决此问题的一种方法,这种方法也可能适用于其他服务。

HPE 支持人员告诉我,AMS 在“Services\hpeams\Parameters”下有一堆可选的未记录注册表设置。您可以在 exe 中或在启动时通过 ProcMon 查看它们。建议的选项是“EnableNetworkWatcher=0”。还有具有类似行为的“EnableCPQNIC=0”。这允许关闭有问题的部分,而不必禁用整个服务。

AMS 有一个名为“PollInterval”的记录设置,默认值为 120 秒。修改此值后,会发现网络轮询在其自己的硬编码 120 秒计时器上运行,并且可能使用其自己的 wmi 句柄,而 WMI-Activity 日志则显示主循环意外地将 wmi 结果集句柄保持打开状态。如果将 PollInterval 设置为 110 或更低,这两个交错间隔似乎会阻止 NetSetupSvc 停止。在修复该错误之前,此方法有效。

相关内容