Ошибка DistributedCOM 10016 в Windows

Windows

В этой заметке я покажу, как исправить ошибку c Event ID 10016 от источника DistributedCOM на компьютере с Windows 10 / Windows Server 2012 R2. Ошибка DCOM 10016 довольно часто встречается как в клиентских, так и в серверных версиях Windows, начиная еще со времен Windows XP и исправляется она одинаково, независимо от редакции Windows.

Проблема проявляется следующим образом: в журнале событий системы при загрузке компьютера или попытке запуска/установки приложения появляется следующая ошибка:

Log Name: Система

Source: DistributedCOM
Event ID: 10016
Level: Ошибка
User: SYSTEM
Описание: Параметры разрешений для конкретного приложения не дают разрешения Локальный Запуск для приложения COM-сервера с CLSID {1CCB96F4-B8AD-4B43-9688-B273F58E0910} и APPID {AD65A69D-3831-40D7-9629-9B0B50A93843}пользователю NT AUTHORITYсистема с SID (S-1-5-18) и адресом LocalHost (с использованием LRPC). Это разрешение безопасности можно изменить с помощью служебной программы управления службами компонентов.

В англоязычных версиях Windows описание ошибки такое:

The machine-default permission settings do not grant Local Activation permission for the COM Server application with CLSID

{000209FF-0000-0000-C000-000000000046} and APPID Unavailable to the user IIS APPPOOLappIISPool SID (S-1-5-82-3351576649-1006875745-771203599-42452693-1279824824) from address LocalHost (Using LRPC) running in the application container Unavailable SID (Unavailable). This security permission can be modified using the Component Services administrative tool.

Ошибка DistributedCOM 10016 в Windows: Параметры разрешений для приложения не дают разрешения локальной активации

Судя по описанию ошибки: некий пользователь (например, IIS Apppool) или система (NT AUTHORITYсистема) пытается запустить некий компонент COM с помощью инфраструктуры DCOM и не может этого сделать из-за отсутствия права «Локальный Запуск» или «Локальная активация» (Local Activation Permission). В коде ошибки содержатся только коды классов COM компонента и приложения. Попробуем определить, какому именно приложению принадлежит идентификатор и предоставить права, необходимые для его запуска.

Из описания события необходимо скопировать идентификаторы CLSID и APPID. В моем случае это

Читайте также:
Настройка скринсейвера в виде слайдшоу с помощью GPO

CLSID : {000209FF-0000-0000-C000-000000000046}
APPID: {AD65A69D-3831-40D7-9629-9B0B50A93843}

(в некоторых случаях идентификатор приложения может быть не указан — APPID Unavailable).

Также обратите внимание каких разрешений не хватает (Local Activation permission) и для какой учетной записи (NT AUTHORITYSYSTEM или IIS APPPOOLappIISPool SID — S-1-5-82-3351576649-1006875745-771203599-42452693-1279824824).

В каждом конкретном случае идентификаторы класса, приложения, учетной записи и типа доступа может отличаться.

  1. Запустите редактор реестра (regedit.exe);
  2. Перейдите в ветку реестра, соответствующую вашему CLSID. У меня это HKEY_CLASSES_ROOTCLSID{000209FF-0000-0000-C000-000000000046}; В некоторых случаях нужно смотреть также в разделе реестра [HKEY_CLASSES_ROOTWow6432NodeCLSID. При удаленном подключении к реестру он будет находиться в разделе HKEY_LOCAL_MACHINESOFTWAREClassesAppID.
  3. В параметре класса должно быть указано имя. У меня это Microsoft Word Application;Чаще всего эта проблема возникает с компонентами:
    Immersive Shell
    CLSID: {C2F03A33-21F5-47FA-B4BB-156362A2F239}
    APPID: {316CDED5-E4AE-4B15-9113-7055D84DCC97}
    RuntimeBroker
    CLSID: {D63B10C5-BB46-4990-A94F-E40B9D520160}
    APPID : {9CA88EE3-ACB7-47C8-AFC4-AB702511C276}Ошибка DistributedCOM 10016 в Windows: Параметры разрешений для приложения не дают разрешения локальной активации
  4. Щелкните правой кнопкой мыши по разделу реестра и выберите пункт Permissions (Разрешения);Ошибка DistributedCOM 10016 в Windows: Параметры разрешений для приложения не дают разрешения локальной активации
  5. Нажмите на кнопку Advanced;Ошибка DistributedCOM 10016 в Windows: Параметры разрешений для приложения не дают разрешения локальной активации
  6. В разделе Owner (Владелец) будет указано NT ServiceTrustedInstaller или System;Ошибка DistributedCOM 10016 в Windows: Параметры разрешений для приложения не дают разрешения локальной активации
  7. Нажмите кнопку Change и укажите имя своей учетной записи администратора. Сохраните изменения;Ошибка DistributedCOM 10016 в Windows: Параметры разрешений для приложения не дают разрешения локальной активации
  8. Обратите внимание, что имя владельца ветки сменилось на вашу учетную запись. Поставьте галку Replace owner on subcontainers and objects (Заменить владельца подконтейнеров и объектов) и нажмите “ОК”;Ошибка DistributedCOM 10016 в Windows: Параметры разрешений для приложения не дают разрешения локальной активации
  9. В списке разрешений добавьте вашу учетную запись администратора и предоставьте ей полный доступ (Full Permissions);Ошибка DistributedCOM 10016 в Windows: Параметры разрешений для приложения не дают разрешения локальной активации
  10. Вы предоставили права на ветку с CLSID. Теперь нужно повторить предыдущие шаги, предоставив учетной записи администратора права на ветку с вашим идентификатором APPID из текста ошибки (например, HKEY_CLASSES_ROOTAppID{AD65A69D-3831-40D7-9629-9B0B50A93843};
  11. Теперь запустите консоль управления компонентами dcomcnfg с правами администратора (Control PanelAll Control Panel ItemsAdministrative ToolsComponent Services);Ошибка DistributedCOM 10016 в Windows: Параметры разрешений для приложения не дают разрешения локальной активации
  12. В консоли компонентов перейдите в ветку Component Services -> Computers -> My computer -> DCOM Config. В списке компонентов найдите имя компонента, которое вы определили на втором шаге (значение в столбце Application ID должно соответствовать вашему CLSID из ошибки). Откройте свойства компонента;Ошибка DistributedCOM 10016 в Windows: Параметры разрешений для приложения не дают разрешения локальной активации

    Если вы не можете найти свой компонент в списке, вероятно у вас 64 битная версия Windows, а запускаемый компонент является 32 битным. В этом случае нужно запустить консоль DCOM командой:
    mmc comexp.msc /32

  13. Перейдите на вкладку Security. Все элементы управления должны быть доступными для изменения;Ошибка DistributedCOM 10016 в Windows: Параметры разрешений для приложения не дают разрешения локальной активации

    Если открыть консоль dcomcnfg до изменения разрешений на ветку реестра, все настройки на вкладке Security окажутся заблокированы (недоступны для изменения), несмотря на то, что вы запустили консоль от имени администратора.

    Ошибка DistributedCOM 10016 в Windows: Параметры разрешений для приложения не дают разрешения локальной активации

  14. В моем случае приложению не хватало прав на «Локальный Запуск» (Local Activation Permission). В секции Launch and Activation Permissions выберите Customize и нажмите кнопку Edit;
  15. В список доступа нужно добавить учетную запись, которой не хватало разрешений на запуск. Имя учетной записи было указано в тексте ошибки: в зависимости от текста в ошибке DCOM 10016 это может быть System, конкретный пользователь или учетка под которой запускается пул IIS (в этом случае нужно добавить доступ для локальной группы IIS_IUSR).Совет. Если в начальном логе ошибки вместо NT AUTHORITYсистема была указана NT AUTHORITYNETWORK SERVICE, необходимо дать права на локальный запуск и активацию для учетной записи NetworkService.
  16. Предоставьте нужные разрешения для учетной записи. Например, Local Activation -> Allow и Local Launch (Локальная активация) -> Allow;Ошибка DistributedCOM 10016 в Windows: Параметры разрешений для приложения не дают разрешения локальной активации
  17. Перезагрузите компьютер и проверьте журналы событий. Ошибка DCOM 10016 должна исчезнуть.

Читайте также:
Настройка синхронизации времени по NTP с помощью групповых политик
Оцените статью
( Пока оценок нет )
Поделиться с друзьями
Информационный блог про Windows
Добавить комментарий