📖 Ошибка 0x80070005 при регистрации DLL (regsvr32) в Windows

Ошибка 0x80070005 при regsvr32 связана с правами, разрядностью x86/x64 и зависимостями DLL. Пошаговые способы исправления.

Ошибка 0x80070005 при регистрации DLL (regsvr32) в Windows

Ошибка 0x80070005 при регистрации DLL через regsvr32 означает отказ в доступе во время записи COM-данных в реестр или обращения к модулю. На практике чаще всего причина в запуске без прав администратора, неверной разрядности regsvr32 или отсутствующих зависимостях библиотеки.

Выполняйте шаги по порядку: сначала проверка команды и прав, затем диагностика зависимостей и восстановление системы.

⚠️ Важно перед правками

Создайте точку восстановления: Win + Rsysdm.cpl → «Защита системы» → «Создать». Это обязательно перед изменением ACL, регистрацией системных DLL и правкой реестра.

Способ 1. Проверить путь к DLL и запуск консоли с повышением

  1. Откройте CMD через «Запуск от имени администратора».
  2. Убедитесь, что путь к DLL существует и указан в кавычках.
  3. Запустите регистрацию повторно.

Способ 2. Использовать корректный regsvr32 для x64/x86

  1. Для 64-битной DLL используйте regsvr32 из System32.
  2. Для 32-битной DLL используйте regsvr32 из SysWOW64.
%windir%\System32\regsvr32.exe "C:\Path\component64.dll"
%windir%\SysWOW64\regsvr32.exe "C:\Path\component32.dll"

Способ 3. Выполнить регистрацию из каталога DLL

  1. Перейдите в папку, где лежит DLL.
  2. Запустите regsvr32 с полным путём к утилите.
cd /d "C:\Path"
%windir%\System32\regsvr32.exe "C:\Path\component64.dll"

Способ 4. Проверить права доступа к DLL и каталогу

  1. Проверьте ACL файла и родительской папки.
  2. Убедитесь, что у Administrators и SYSTEM есть доступ.
icacls "C:\Path\component64.dll"
icacls "C:\Path"

Способ 5. Проверить зависимости DLL

  1. Установите актуальные Microsoft Visual C++ Redistributable x86/x64.
  2. Проверьте, нет ли отсутствующих зависимых модулей.
  3. После установки runtime повторите регистрацию DLL.

Способ 6. Временно исключить блокировку защитой

  1. Временно отключите сторонний антивирус или HIPS/EDR-политики.
  2. Добавьте папку с DLL в исключения на время регистрации.
  3. Сразу после проверки верните защиту в рабочий режим.

Способ 7. Проверить и восстановить системные файлы

sfc /scannow
DISM /Online /Cleanup-Image /RestoreHealth
sfc /scannow

Способ 8. Проверить права на ветки COM в реестре

  1. Откройте regedit от администратора.
  2. Проверьте доступ к веткам HKEY_CLASSES_ROOT\CLSID и HKEY_CLASSES_ROOT\TypeLib.
  3. При необходимости верните стандартные разрешения для TrustedInstaller, SYSTEM, Administrators.

💡 Совет

Если DLL относится к конкретной программе, сначала выполните её штатный ремонт/переустановку. Ручной regsvr32 нужен, когда вендор прямо требует регистрацию библиотеки.

Полезные пути и журналы

  • 64-битный regsvr32: C:\Windows\System32\regsvr32.exe.
  • 32-битный regsvr32: C:\Windows\SysWOW64\regsvr32.exe.
  • Лог установок/драйверов: C:\Windows\INF\setupapi.dev.log.
  • Системные события: C:\Windows\System32\winevt\Logs.
  • Логи восстановления: C:\Windows\Logs\CBS\CBS.log, C:\Windows\Logs\DISM\dism.log.

FAQ

Что означает ошибка 0x80070005 при regsvr32?

Код 0x80070005 означает Access Denied. Утилита regsvr32 не может записать нужные COM-записи в реестр или получить доступ к DLL из-за недостатка прав.

Почему важно выбирать правильный regsvr32 x86 или x64?

32-битные и 64-битные DLL регистрируются разными версиями regsvr32. Неверный выбор часто приводит к ошибкам регистрации или сообщению о несовместимом модуле.

Как понять, что DLL не регистрируется из-за зависимостей?

Если файл найден, но регистрация падает, часто отсутствуют runtime-библиотеки VC++ или другие зависимости. Это видно по событиям приложения и инструментам проверки зависимостей.

Нужно ли запускать regsvr32 только от имени администратора?

Для системных DLL и записи в HKLM — да, обязательно. Без повышенных прав regsvr32 часто возвращает 0x80070005 даже при корректном пути к файлу.

Что делать, если 0x80070005 остаётся после правильной команды?

Проверьте ACL файла и ключей реестра, отключите временно блокирующий антивирус, установите нужные VC++ runtime и выполните SFC/DISM для восстановления системных компонентов.

⚡ Статья обновляется

  • 22.02.2026 — первая публикация

Последняя проверка: 23.02.2026