Event ID 10005 DCOM: Ошибка DCOM при запуске службы
Архитектура DCOM и запуск служб (Service Activation)
Событие 10005 логируется в журнале System источником DistributedCOM. Сообщение: «Служба DCOM получила ошибку [Код Ошибки] при попытке запуска службы [ИмяСлужбы] с аргументами [Аргументы] для выполнения сервера [CLSID]». DCOM (Distributed Component Object Model) — это транспортный каркас Windows. Когда вы запускаете оснастку (например, Управление дисками), обращаетесь к WMI или открываете консоль Hyper-V, ядро DCOM пытается "на лету" запустить нужную фоновую службу (COM-сервер). Если служба не стартует или падает, ядро пишет 10005. Симптомы: консоли управления выдают ошибки "RPC сервер недоступен" или "Отказано в доступе".
Расшифровка кодов ошибок (Win32 Error Codes)
В тексте события содержится цифровой код (например, 1084 или 1053). Это стандартные коды ошибок Windows (Win32):
| Код ошибки (Decimal) | Расшифровка |
|---|---|
| 1084 (ERROR_SERVICE_DISABLED) | Эта служба не может быть запущена в безопасном режиме (Safe Mode), либо она была жестко отключена (Disabled) в services.msc. |
| 1053 (ERROR_SERVICE_REQUEST_TIMEOUT) | Служба не ответила на запрос запуска (Таймаут). См. >События 7009 и 7022. |
| 1058 (ERROR_SERVICE_DISABLED) | Указанная служба отключена или не имеет включенных устройств. |
| 5 (ERROR_ACCESS_DENIED) | Отказ в доступе. Не хватает прав на запуск .exe файла. |
Пошаговое дерево решений (Восстановление COM-серверов)
Сценарий 1: Служба принудительно отключена (Код 1084 / 1058)
Чаще всего администраторы "оптимизируют" сервер, отключая "лишние" службы (например, Службу теневого копирования томов - VSS, или Центр обновления). Когда система пытается к ним обратиться через DCOM, происходит сбой.
- Откройте
services.msc. - Найдите службу, указанную в тексте события (например, `vss` или `wuauserv`).
- Измените ее Тип запуска с Отключена (Disabled) на Вручную (Manual).
- DCOM сам поднимет эту службу при необходимости.
Сценарий 2: Расшифровка CLSID (Поиск скрытого приложения)
Иногда в логе нет имени службы, а есть только "кракозябры" (CLSID), например {8BC3F05E-D86B-11D0-A075-00C04FB68820}.
- Откройте редактор реестра
regedit. - Перейдите в ветку:
HKEY_CLASSES_ROOT\CLSID\{Ваш-CLSID}. - Значение (По умолчанию) покажет человеческое имя приложения (например, WMI Provider).
- Подраздел
LocalServer32покажет полный путь к файлу (например,C:\Windows\System32\wbem\WmiPrvSE.exe). Проверьте, не удален ли этот файл антивирусом.
Сценарий 3: Повреждение WMI / DCOM репозитория
Если сыплются 10005 для WMI (Инструментарий управления Windows), база WMI сломана. Откройте CMD от админа и выполните:winmgmt /salvagerepositorywinmgmt /resetrepository
Типовые ошибки администраторов
- Путаница между 10016 и 10005: >Событие 10016 — это проблема прав доступа (Security/ACL), вам запретили запуск. 10005 — это проблема исполнения (служба сломана, удалена или висит), права у вас есть, но 'железо' подвело.
Траблшутинг архитектуры RPC/DCOM требует глубокого понимания реестра Windows и Win32 API. Делегируйте инфраструктуру нам: мы восстановим целостность системных служб, починим базы WMI, настроим Firewall и вернем вам 100% управляемость парком серверов.
Частые вопросы (FAQ)
Почему 10005 появляется при загрузке в Безопасном режиме (Safe Mode)?
В Safe Mode ядро Windows блокирует запуск 90% служб (чтобы минимизировать влияние драйверов). Но встроенные консоли (например, Server Manager) пытаются 'дергать' DCOM-серверы, которые отключены политикой Safe Mode. Это генерирует ошибку 1084. Игнорируйте их в Safe Mode.
Как перевести код ошибки (например, -2147024891) в человеческий текст?
Используйте встроенную утилиту CertUtil. Откройте CMD и введите 'certutil -error -2147024891'. Утилита расшифрует шестнадцатеричный код HRESULT в текст: 'Отказано в доступе' (Access is denied).
Можно ли переустановить компоненты DCOM?
DCOM — это встроенный функционал ядра (combase.dll / rpcss.dll). Переустановить его отдельно нельзя. Если он фатально поврежден, поможет только 'dism /online /cleanup-image /restorehealth' или In-Place Upgrade ОС.
Что такое LocalServer32 в реестре?
Это ветка реестра, которая указывает DCOM-ядру, какой именно исполняемый файл (.exe) нужно запустить, чтобы 'оживить' запрошенный COM-объект. Если файл перемещен или удален, DCOM выдаст ошибку File Not Found (2).
Влияет ли UAC на 10005?
Обычно нет. UAC вызывает ошибки доступа (Access Denied). 10005 — это сбой активации самой службы (System Level), а не блокировка токена пользователя.