WinMgmt由于 open 函数中有时间冲突,WMI ADAP 无法处理 PerfDisk 性能库的问题的解决
ftp://ftp.microsoft.com/reskit/win2000目录下面寻找一个工具,名字叫exctrlst,解压缩以后运行找到PerfDisk 对应dll是 perfdisk.dll将下面的一个单选框的构去掉取消“Performance Counters Enabled”应该就可以解决+++++++++++++++++++++++++1、WMI ADAP无法加载winspool.div性能库,原因是库中的一个未知问题:0x0 2、WMI ADAP无法加载perfproc.dll性能库,原因是库中的一个未知问题:0x0 3、无法打开服务器服务。服务器性能数据将不会被返回。返回的错误码是数据 DWORD 0. 4、由于open函数中有时间冲突,WMI ADAP无法处理PerfDisk性能库。 5、WMI ADAP 未能连接到名称空间\\\\.\\root\\cimv2\\MS 404,错误如下:0x8004100e 原因 出现此行为可能是因为计数器中有问题,或者是因为 Windows 管理规范 (WMI) 性能库筛选器中返回了一个假的正值。如果 WMI 性能库筛选器中返回了一个假的正值,在某些情形下,即使计数器工作正常,此筛选器也可能会错误地判定某个库是无效的。 替代方法请尝试使用以下命令再次筛选计算机的性能库: winmgmt /clearadap此命令可从服务的性能注册表项中清除所有与 WMI 相关的数值。 winmgmt /resyncperf "winmgmt service pid"此命令可用于向 WMI 注册计算机的性能库。您可以在“Windows 任务管理器”中的进程选项卡上找到 WMI 服务 PID 信息。涉及的服务的性能注册表项包括以下注册表项: WbemAdapFileSizeWbemAdapFileTimeWbemAdapStatus备注:如想了解 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)。 如果做出这些更改之后仍继续记录这些事件,则请在该服务的性能注册表项下,手动将HKEY_LOCAL_MACHINE\\System\\CurrentControlSet\\Services\\PerfProc\\Performance 下的WbemAdapStatus 的值更改为 REG_DWORD 0,(就是改成0,0在16进制和10进制下没有区别,REG_DWORD只是说明是此类型,不用填他,只写0,我就是菜鸟我就这样理解。)然后在下面的HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Wbem\\CIMOM下面注册表项中将 ADAPPerflibTimeout 的值增加到 REG_DWORD 180: 备注:对注册表的所有更改都必须以十进制数值的形式输入。另外,您也可以使用 Windows 2000 Resource Kit 中的 Exctrlst.exe 工具禁用特定服务的性能计数器。此工具通过添加类似于以下示例的注册表项来禁用特定的计数器。如果 Exctrlst.exe 不可用或不适用,您可以手动在特定计数器项下添加这些注册表项。 HKEY_LOCAL_MACHINE\\System\\CurrentControlSet\\Services\\Spooler\\Performance数值名称:Disable Performance Counters 数值类型:REG_DWORD数值数据: 1 备注:如要使用这些命令,请单击开始,运行,然后键入 cmd 以进入命令行状态。以上转载microsoft