Ошибка «COM-объект 2147024891 (0x80070005)» появляется, когда приложение не может получить нужные разрешения для запуска или активации COM/DCOM. Проблема часто встречается в службах, админ-утилитах, скриптах и старых корпоративных программах.
Выполняйте шаги по очереди: сначала простые проверки, затем настройка DCOM, регистрация библиотек и восстановление системы.
⚠️ Обязательный шаг перед правками
Создайте точку восстановления: Win + R →
sysdm.cpl → «Защита системы» → «Создать». Это обязательно перед
изменением DCOM-разрешений и ключей реестра.
Способ 1. Запустить приложение с повышенными правами
- Закройте программу, где появляется ошибка.
- Запустите её через «От имени администратора».
- Проверьте, повторяется ли код 2147024891.
Способ 2. Определить CLSID/AppID в журнале событий
- Откройте Event Viewer → «Журналы Windows» → «Система».
- Найдите события DistributedCOM с кодом отказа в доступе.
- Запишите CLSID и AppID для дальнейшей настройки.
Способ 3. Настроить права DCOM через dcomcnfg
dcomcnfg - Перейдите: «Службы компонентов» → «Компьютеры» → «Мой компьютер» → DCOM Config.
- Откройте нужный объект по AppID/имени.
- В «Security» выдайте нужной учётной записи Local Launch и Local Activation.
Способ 4. Проверить права на ключи реестра CLSID/AppID
- Откройте
regedit. - Проверьте ключи CLSID и AppID из события.
- Убедитесь, что TrustedInstaller/SYSTEM/Administrators имеют корректный доступ.
Способ 5. Проверить службы COM и RPC
sc query RpcSs
sc query DcomLaunch
sc query EventSystem Способ 6. Перерегистрировать COM-библиотеку (если известна DLL/OCX)
%windir%\System32\regsvr32.exe "C:\Path\component64.dll"
%windir%\SysWOW64\regsvr32.exe "C:\Path\component32.dll" Способ 7. Проверить локальные политики безопасности
-
Откройте
secpol.msc(если доступно в редакции системы). - Проверьте права «Вход как служба» и «Запрет локального входа».
- Сверьте, не ограничена ли сервисная учётная запись приложения.
💡 Совет
После изменения DCOM прав перезапускайте целевой сервис или систему, иначе старый токен доступа может сохраняться и ошибка останется.
Способ 8. Восстановить системные файлы
sfc /scannow
DISM /Online /Cleanup-Image /RestoreHealth
sfc /scannow Способ 9. Тест в новой локальной админ-учётной записи
- Создайте новую локальную учётную запись с правами администратора.
- Войдите в неё и повторите сценарий ошибки.
- Если проблема исчезла, перенесите рабочий профиль и настройки.
Системные пути и журналы
- Журналы событий:
C:\Windows\System32\winevt\Logs. - Раздел CLSID:
HKEY_CLASSES_ROOT\CLSID. - Раздел AppID:
HKEY_CLASSES_ROOT\AppID. - Лог CBS:
C:\Windows\Logs\CBS\CBS.log. - Лог DISM:
C:\Windows\Logs\DISM\dism.log.
FAQ
Что означает COM-объект 2147024891 (0x80070005)?
Это системный код Access Denied. Приложение пытается создать или вызвать COM-объект, но не имеет прав на запуск, активацию или доступ к связанному ресурсу.
Почему ошибка COM возникает даже у администратора?
Даже локальный администратор может не иметь нужных DCOM-разрешений, прав на ключи реестра CLSID/AppID или доступа к сервисной учётной записи.
Нужно ли менять разрешения в dcomcnfg при 0x80070005?
Да, если журнал указывает на конкретный CLSID/AppID. Тогда в dcomcnfg нужно выдать Launch/Activation и Access Permissions для требуемой учётной записи.
Помогает ли regsvr32 при ошибке COM 2147024891?
Помогает, когда проблема связана с некорректно зарегистрированной DLL/OCX. Важно использовать regsvr32 нужной разрядности и запускать консоль от администратора.
Что делать, если после правок DCOM ошибка остаётся?
Проверьте события DistributedCOM, восстановите системные файлы SFC/DISM и выполните тест под новой локальной админ-учётной записью для исключения повреждённого профиля.