windows 2016系统报错1008:bitsperf.dll

问题

2018年6月8日星期五 上午2:19

a)一、问题:我有一台windows server 2016 standard版本的服务器,报错如下:

**      DLL“C:\Windows\System32\bitsperf.dll”中服务“BITS”的打开过程失败。该服务的性能数据将不可使用。数据段的第一个四字节 (DWORD) 包含错误代码。**

**      日志名称:应用程序**

**      来源:perflib**

**      事件ID:1008**

**      级别:错误**

二、目前尝试的方法为:

测试方法一:

关于两台服务器上存在performance counter的报错问题

根据微软TechNet上的解决方案来看,需要重新加载性能计数器文件。

social.technet.microsoft.com/wiki/contents/articles/23555.troubleshooting-windows-server-corrupt-or-broken-performance-counters.aspx

在执行完命令后,没有效果,还是报错,尝试重启后,也还是报错。

           

测试方法二:

尝试重新注册.ini 文件:1. 打开运行,输入 regedit 并回车。
2. 打开以下路径: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BITS\Performance
3. 在右侧栏查找PerfIniFile,记住该注册表子项的Data所对应的.ini 文件名,BITS对应的是bitsctrs.ini**。**
4. 在系统盘,搜索bitsctrs.ini**。如果有多个相同的结果,选择创建时间最早的一个,常规情况下,默认路径如下:** C:\windows\INF\BITS\0409
5. 如果该路径下没有相同名称的.h文件(bitsctrs.h),返回上一级文件菜单,手动复制.h文件到bitsctrs.ini所在的文件夹中。
6. 打开CMD, 输入以下命令,每行以Enter结束,然后确认结果: unlodctr BITS lodctr “C:\Windows\Inf\BITS\0409\bitsctrs.ini”

测试方法三:

1.1      确认注册表里计数器没有被禁用

Ensure that the counters are not disabled in the registry

The counters may be disabled via registry settings. Please check the following registry locations to ensure that the counters have not been disabled.

HKLM\System\CurrentControlSet\Services\servicename%\Performance

%servicename% represents any service with a performance counter. For example: PerfDisk, PerfOS, etc.

There may be registry keys for "DisablePerformanceCounters" in any of these locations. As per the following TechNet article, this value should be set to 0. If the value is anything other than 0 the counter may be disabled.

1.2      重新加载所有计数器

Rebuilding all performance counters including extensible and third-party counters

To rebuild all Performance counters including extensible and third-party counters, type the following commands at an Administrative command prompt. Press ENTER after each command.

Rebuilding the counters:      cd c:\windows\system32      lodctr /R      cd c:\windows\sysWOW64      lodctr /R

Resyncing the counters with Windows Management Instrumentation (WMI):      WINMGMT.EXE /RESYNCPERF

1.3      对于特殊的计数器,进行单独加载:

For a number of counters, the location of the “ini” files to install perf counters is under “windows\winsxs”:

You  will need to use the counter install ini files in the following directory "c:\Windows\winsxs

Dir C:\Windows\winsxs\ -->You will see 2 folders

Try installing the bitsctrs.ini from each folder using: "Lodctr bitsctrs.ini"

 When it is successful, you will see the following entry in the application log

Log Name: Application
      Source:
Microsoft-Windows-LoadPerf
      Event ID: 1000
      Level: Information

      Description:
      Performance counters for the ..... service were
loaded successfully. .... <o:p></o:p>

 Following these steps, re-run "WINMGMT /RESYNCPERF"****

都做完后,报错依然还在!!

全部回复 (8)

2018年6月11日星期一 上午9:15

您好!

感谢您的提问。

这个事件为访问性能库出现错误,这可能会导致应用程序数据无法找到或不可用,而导致最终的应用程序错误。详细关于这个事件,您可以参考以下链接:

Event ID 1008 — Performance Library Availability

/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc774913(v=ws.10)

在您已经做过一些troubleshooting后,我们还可以检查以下几项看看是否正常并尝试操作恢复此错误。

1 您需要检查系统服务中Background Intelligent transfer Service 处于正在运行状态。

2 您可以尝试重新手动生成性能计数器库;。具体操作如下:

可扩展计数器信息存储在以下两个位置中:

以下注册表子项:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Current Version\Perflib\009

%Systemroot%\System32\Perfc009.dat 文件和 %Systemroot%\System32\Perfh009.dat 文件

您可以在运行正常的Windows server 2016 将这两个文件复制过来,尝试修复这个报错。

3 另外一个方案就是,启动注册表编辑器,然后在注册表中查找以下项:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Perflib

在注册表中,将“Last Counter”;更改为 1846(十进制),并将“Last Help” ;更改为 1847(十进制)。

查找以下注册表项,以搜索具有 Performancesubkey 的服务:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services

从 Performance 子项(如果存在)删除以下;:

First Counter

First Help

Last Counter

Last Help

但是请注意:错误修改注册表键;可能会导致系统不可逆的损坏宕机,请在修改之前备份您的重要数据和系统。

希望以上信息能帮助到您。

Best regards,

Michael

Please remember to mark the replies as an answers if they help.
If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com


2018年6月11日星期一 上午10:13

1 您需要检查系统服务中Background Intelligent transfer Service 处于正在运行状态。

答:此服务在报错的机器中没有运行,而且我尝试启动服务后,两分钟后此服务又自动停止了。我觉得这个现象是正常的,因为我在正常的系统中,操作现象也是一样的。是否只有在用到的时候,比如windows update时,服务才会正常运行?


2018年6月12日星期二 下午4:18

您好!

您是对的,您可以先忽略第一个系统服务的状态。下面两个建议方法有解决您的问题吗?

另外,我找到一篇关于修复这个错误的文章,您可以参照:

How to: “Fix” Perflib Error 1008

希望以上能帮助到您。

Best regards,

Michael

Please remember to mark the replies as an answers if they help.
If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com


2018年6月17日星期日 下午2:35

您好!

请问您的事件进展如何?问题有解决吗?

如果还需帮助,可以随时在论坛回复我。

Best regards,

Michael

Please remember to mark the replies as an answers if they help.
If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com


2018年6月19日星期二 上午8:19

您好!

请问您的事件进展如何?问题有解决吗?

如果还需帮助,可以随时在论坛回复我。

Best regards,

Michael

Please remember to mark the replies as an answers if they help.
If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com


2018年6月25日星期一 上午2:43

都试过了,没有解决,问题还在。


2018年6月27日星期三 上午1:21

没解决啊。没解决。


2018年6月27日星期三 上午7:42

你好!

之前提到的这个链接(https://freek.ws/2015/05/16/how-to-fix-perflib-error-1008/),取消掉无法收集数据的服务性能计数器,是否可以暂时解决事件查看器日志中持续报错的问题?

Best regards,

Michael

Please remember to mark the replies as an answers if they help.
If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com