Event ID 10016 DCOM: Разрешения уровня компьютера не предоставляют прав
Архитектура DCOM и симптомы сбоя
Событие 10016 логируется в журнале System. Сообщение: "Параметры разрешений для компьютера по умолчанию не предоставляют разрешение Локальная активация (Local Activation) для приложения COM-сервера с CLSID {ХХХ} и APPID {YYY} пользователю NT AUTHORITY\SYSTEM". Архитектура Distributed COM (DCOM) жестко разграничивает права на запуск компонентов. Если у службы (например, IIS WAMREG или RuntimeBroker) нет прав запустить DCOM-объект, ядро пишет 10016. Симптомы: журнал системных событий "заспамлен" тысячами таких ошибок, хотя сервер работает абсолютно нормально.
Параметры безопасности DCOM
| Тип разрешения DCOM | Что означает |
|---|---|
| Local Launch (Локальный запуск) | Право запустить .exe/.dll файл COM-сервера в памяти, если он еще не запущен. |
| Local Activation (Локальная активация) | Право обратиться к УЖЕ запущенному экземпляру COM-объекта в памяти и запросить у него интерфейс. |
| Remote Launch/Activation | То же самое, но по сети (через RPC). Требуется для мониторинга (WMI) и кластеров. |
Пошаговое дерево решений (Исправление прав)
Официальная позиция Microsoft: Ошибки 10016 можно и нужно игнорировать (By Design). Они не влияют на работу ОС. Но если они мешают вам читать логи или настроить SIEM, их можно подавить, выдав нужные права.
Сценарий 1: Получение прав на ветки реестра (Take Ownership)
По умолчанию администраторы имеют права только на чтение системных DCOM. Вам нужно стать их владельцем.
- Откройте
regeditот имени Администратора. - Перейдите в ветку
HKEY_CLASSES_ROOT\AppID\{Указанный_В_Ошибке_APPID}. - Нажмите правой кнопкой -> Разрешения (Permissions) -> Дополнительно.
- Измените Владельца (Owner) с TrustedInstaller на группу Администраторы (Administrators). Обязательно поставьте галочку "Заменить владельца подконтейнеров".
- Нажмите ОК. В окне разрешений дайте группе Администраторы Полный доступ (Full Control).
- Повторите ту же процедуру для ветки
HKEY_CLASSES_ROOT\CLSID\{Указанный_В_Ошибке_CLSID}.
Сценарий 2: Выдача прав в компонентах DCOM (dcomcnfg)
Теперь мы можем изменить права самого COM-объекта.
- Нажмите Win+R ->
dcomcnfg. - Перейдите: Службы компонентов -> Компьютеры -> Мой компьютер -> Настройка DCOM (DCOM Config).
- Переключите вид в "Сведения" (Details) и найдите приложение по его APPID. Нажмите на него правой кнопкой -> Свойства.
- Вкладка Безопасность (Security). В разделе "Разрешения на запуск и активацию" выберите Настроить -> Изменить.
- Если появится окно с предупреждением, нажмите Удалить (Remove) нераспознанные записи.
- Добавьте пользователя, указанного в тексте ошибки 10016 (например,
NETWORK SERVICEилиLOCAL SERVICE). - Поставьте галочки: Локальный запуск (Local Launch) и Локальная активация (Local Activation). Нажмите ОК.
Типовые ошибки администраторов
- Поломка меню Пуск: Попытка выдать права на системные компоненты (например, RuntimeBroker или Immersive Shell) часто приводит к тому, что кнопка ПУСК в Windows Server перестает нажиматься, а UWP-приложения падают. Не трогайте системные CLSID!
- Удаление TrustedInstaller: После выдачи прав всегда возвращайте Владельца ветки реестра обратно на
NT SERVICE\TrustedInstaller, иначе Центр обновления Windows не сможет патчить этот DCOM-компонент в будущем.
Тюнинг мониторинга (Log Management) — ключ к стабильности. Делегируйте обслуживание серверов профессионалам: мы вычистим мусор, настроим фильтрацию событий, поднимем Zabbix/SIEM и обеспечим контроль над инфраструктурой.
Частые вопросы (FAQ)
Почему 10016 появляется после установки обновлений Windows?
Microsoft периодически 'закручивает гайки' в безопасности (Hardening), убирая права у встроенных служб на обращение к DCOM. Это штатная процедура снижения поверхности атаки.
Как скрыть 10016 из Event Viewer, не меняя права в реестре?
В окне Event Viewer (Просмотр событий) нажмите 'Фильтр текущего журнала'. На вкладке 'XML' поставьте галочку 'Изменить запрос вручную' и добавьте исключение: <Suppress Path="System">*[System[(EventID=10016)]]</Suppress>. Ошибки просто перестанут отображаться.