Event ID 1008 Perflib: The Open Procedure for service failed
Симптомы ошибки Event ID 1008 (Perflib)
В журнале Application регулярно регистрируются предупреждения и ошибки от источника Perflib с кодом Event ID 1008:
The Open Procedure for service "BITS" in DLL "C:\Windows\System32\bitsperf.dll" failed with error code Access is denied. Performance data for this service will not be available.
Как проявляется сбой:
- Системный монитор (Performance Monitor —
perfmon.msc) не отображает счетчики производительности определенных служб (BITS, WsmSvc, .NET Framework, ASP.NET). - Системы мониторинга (Zabbix, Prometheus, SCOM) не могут собрать метрики загрузки CPU, диска или памяти сервера.
- Журнал событий переполняется повторяющимися записями Perflib каждые несколько минут.
Что это за ошибка: Служба мониторинга производительности Windows (Perflib) пытается опросить служебные DLL-библиотеки сторонних или системных программ, но натыкается на поврежденный реестр счетчиков или нехватку прав доступа учетной записи.
Пошаговое восстановление счетчиков производительности Perflib
Полная пересборка всех счетчиков производительности (lodctr /r)
Запустите командную строку (CMD) строго от имени Администратора и выполните команды восстановления реестра счетчиков:
cd C:\Windows\System32 lodctr /r cd C:\Windows\SysWOW64 lodctr /r(Если команда возвращает ошибку
Error code 2, выполните её повторно — со второго раза реестр будет полностью пересобран).Синхронизация счетчиков с библиотеками WMI
После пересборки Perflib обновите репозиторий классов счетчиков WMI:
winmgmt /resyncperf net stop winmgmt /y net start winmgmtПроверка прав доступа к ветке реестра Perflib
Убедитесь, что встроенная группа Performance Monitor Users и учетная запись LOCAL SERVICE имеют права на чтение ветки реестра:
# Проверка прав доступа через PowerShell: $acl = Get-Acl "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib" $acl.Access | Select-Object IdentityReference, RegistryRightsОтключение сбойного счетчика производительности (если служба удалена)
Если проблемная программа была удалена, а ее счетчик остался в реестре, отключите опрос этой библиотеки:
# Пример отключения счетчика для проблемной службы BITS: Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\BITS\Performance" -Name "Disable Performance Counters" -Value 1 -Type DWord
Частые вопросы (FAQ)
Влияет ли Event ID 1008 на стабильность работы приложений?
Нет, приложения продолжают работать в штатном режиме. Ошибка влияет исключительно на сбор метрик производительности и работу утилиты Perfmon.
Что делать, если lodctr /r возвращает 'Unable to rebuild performance counter settings'?
Убедитесь, что командная строка запущена с повышенными привилегиями Администратора, и временно остановите службу Windows Management Instrumentation (winmgmt).
Безопасно ли отключать счетчики через Disable Performance Counters = 1?
Да, это полностью безопасно. Это предотвращает попытки опроса несуществующих библиотек и очищает журнал событий от спама ошибок Perflib.
Как проверить, что все счетчики восстановились?
Откройте perfmon.msc, нажмите кнопку '+' (Добавить счетчики) и убедитесь, что в списке доступны все категории объектов.