你目前正处于脱机状态,正在等待 Internet 重新连接

如何排查基于 WinMgmt 的性能计数器错误

重要说明:本文包含有关修改注册表的信息。修改注册表之前,一定要备份注册表,并且一定要知道在发生问题时如何还原注册表。有关如何备份、还原和编辑注册表的信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
256986 Description of the Microsoft Windows Registry
症状
当在计算机上查看应用程序事件查看器日志时,可能会看到记录了下面一个或多个事件:
Event Type:Error
Event Source:WinMgmt
Event Category:None
Event ID:37
Description:WMI ADAP was unable to load the file name performance library due to an unknown problem within the library:0x0
- 或 -
Event Type: Error
Event Source: WinMgmt
Event Category: None
Event ID: 41
Description:ADAP was unable to process the file name performance library due to a time violation in the collect function
- 或 -
Event Type: Error
Event Source: WinMgmt
Event Category: None
Event ID: 61
Description:WMI ADAP was unable to process the file name performance library due to a time violation in the open function
原因
出现此行为可能是因为计数器中有问题,或者是因为 Windows 管理规范 (WMI) 性能库筛选器中返回了一个假的正值。如果 WMI 性能库筛选器中返回了一个假的正值,在某些情形下,即使计数器工作正常,此筛选器也可能会错误地判定某个库是无效的。
替代方法
警告:“注册表编辑器”使用不当可造成严重问题,以至需要重新安装操作系统。Microsoft 无法保证您能够解决因为“注册表编辑器”使用不当而产生的问题。使用“注册表编辑器”需要您自担风险。

请尝试使用以下命令再次筛选计算机的性能库:
winmgmt /clearadap
此命令可从服务的性能注册表项中清除所有与 WMI 相关的数值。
winmgmt /resyncperf "winmgmt service pid"
此命令可用于向 WMI 注册计算机的性能库。

您可以在“Windows 任务管理器”中的进程选项卡上找到 WMI 服务 PID 信息。

涉及的服务的性能注册表项包括以下注册表项:
WbemAdapFileSize
WbemAdapFileTime
WbemAdapStatus
备注:如想了解 WMI 的可用命令选项方面的更多信息,请在命令提示符下键入 winmgmt/?

导致此事件的另一个原因可能是,在启动期间,计数器由于其他活动而不能及时响应。您可以通过向适当的注册表位置添加 Collect Timeout REG_DWORD 10000 值来调整此超时值:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\[counterfile]\Performance
其中 [counterfile] 是事件查看器的错误消息中列出的文件名 性能库。

例如,如果事件查看器中的消息是
WMI ADAP was unable to process the perfproc.dll performance library due to a time violation in the open function
那么注册表项将是:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\PerfProc\Performance
请注意此注册表路径不包括文件扩展名 (.dll)。如果做出这些更改之后仍继续记录这些事件,则请在该服务的性能注册表项下,手动将 WbemAdapStatus 的值更改为 REG_DWORD 0,然后在下面的注册表项中将 ADAPPerflibTimeout 的值增加到 REG_DWORD 180:
HKEY_LOCAL_MACHINE\Software\Microsoft\Wbem\CIMOM
备注:对注册表的所有更改都必须以十进制数值的形式输入。

另外,您也可以使用 Windows 2000 Resource Kit 中的 Exctrlst.exe 工具禁用特定服务的性能计数器。此工具通过添加类似于以下示例的注册表项来禁用特定的计数器。如果 Exctrlst.exe 不可用或不适用,您可以手动在特定计数器项下添加这些注册表项。
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Spooler\Performance

数值名称:Disable Performance Counters
数值类型:REG_DWORD
数值数据: 1
备注:如要使用这些命令,请单击开始运行,然后键入 cmd 以进入命令行状态。
更多信息
AutoDiscovery/AutoPurge (ADAP) 进程负责收集和维护 WMI 中的已在计算机上注册的性能计数器对象。

当启动 WinMgmt 服务或当您使用 Lodctr 或 Unlodctr 工具安装或卸载包含性能计数器的性能库时,ADAP 进程将启动。

虽然记录了事件,但计数器仍可用。
wmi performance counter event adap kbfaqw2kperf
属性

文章 ID:266416 - 上次审阅时间:10/23/2003 23:34:00 - 修订版本: 1.3

  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Professional Edition
  • kbprb KB266416
反馈
ript" src="https://c.microsoft.com/ms.js" '="">