В этой заметке я покажу, как исправить ошибку 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 APPPOOL\appIISPool 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.
Судя по описанию ошибки: некий пользователь (например, IIS Apppool) или система (NT AUTHORITY\система) пытается запустить некий компонент COM с помощью инфраструктуры DCOM и не может этого сделать из-за отсутствия права «Локальный Запуск» или «Локальная активация» (Local Activation Permission). В коде ошибки содержатся только коды классов COM компонента и приложения. Попробуем определить, какому именно приложению принадлежит идентификатор и предоставить права, необходимые для его запуска.
Из описания события необходимо скопировать идентификаторы CLSID и APPID. В моем случае это
CLSID : {000209FF-0000-0000-C000-000000000046}
APPID: {AD65A69D-3831-40D7-9629-9B0B50A93843}
(в некоторых случаях идентификатор приложения может быть не указан — APPID Unavailable).
Также обратите внимание каких разрешений не хватает (Local Activation permission) и для какой учетной записи (NT AUTHORITY\SYSTEM или IIS APPPOOL\appIISPool SID — S-1-5-82-3351576649-1006875745-771203599-42452693-1279824824).
В каждом конкретном случае идентификаторы класса, приложения, учетной записи и типа доступа может отличаться.
- Запустите редактор реестра (regedit.exe);
- Перейдите в ветку реестра, соответствующую вашему CLSID. У меня это HKEY_CLASSES_ROOT\CLSID\{000209FF-0000-0000-C000-000000000046};
В некоторых случаях нужно смотреть также в разделе реестра [HKEY_CLASSES_ROOT\Wow6432Node\CLSID\. При удаленном подключении к реестру он будет находиться в разделе HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID.
- В параметре класса должно быть указано имя. У меня это 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} - Щелкните правой кнопкой мыши по разделу реестра и выберите пункт Permissions (Разрешения);
- Нажмите на кнопку Advanced;
- В разделе Owner (Владелец) будет указано NT Service\TrustedInstaller или System;
- Нажмите кнопку Change и укажите имя своей учетной записи администратора. Сохраните изменения;
- Обратите внимание, что имя владельца ветки сменилось на вашу учетную запись. Поставьте галку Replace owner on subcontainers and objects (Заменить владельца подконтейнеров и объектов) и нажмите “ОК”;
- В списке разрешений добавьте вашу учетную запись администратора и предоставьте ей полный доступ (Full Permissions);
- Вы предоставили права на ветку с CLSID. Теперь нужно повторить предыдущие шаги, предоставив учетной записи администратора права на ветку с вашим идентификатором APPID из текста ошибки (например, HKEY_CLASSES_ROOT\AppID\{AD65A69D-3831-40D7-9629-9B0B50A93843};
- Теперь запустите консоль управления компонентами dcomcnfg с правами администратора (Control Panel\All Control Panel Items\Administrative Tools\Component Services);
- В консоли компонентов перейдите в ветку Component Services -> Computers -> My computer -> DCOM Config. В списке компонентов найдите имя компонента, которое вы определили на втором шаге (значение в столбце Application ID должно соответствовать вашему CLSID из ошибки). Откройте свойства компонента;
Если вы не можете найти свой компонент в списке, вероятно у вас 64 битная версия Windows, а запускаемый компонент является 32 битным. В этом случае нужно запустить консоль DCOM командой:
mmc comexp.msc /32
- Перейдите на вкладку Security. Все элементы управления должны быть доступными для изменения;
Если открыть консоль dcomcnfg до изменения разрешений на ветку реестра, все настройки на вкладке Security окажутся заблокированы (недоступны для изменения), несмотря на то, что вы запустили консоль от имени администратора.
- В моем случае приложению не хватало прав на «Локальный Запуск» (Local Activation Permission). В секции Launch and Activation Permissions выберите Customize и нажмите кнопку Edit;
- В список доступа нужно добавить учетную запись, которой не хватало разрешений на запуск. Имя учетной записи было указано в тексте ошибки: в зависимости от текста в ошибке DCOM 10016 это может быть System, конкретный пользователь или учетка под которой запускается пул IIS (в этом случае нужно добавить доступ для локальной группы IIS_IUSR).
Совет. Если в начальном логе ошибки вместо NT AUTHORITY\система была указана NT AUTHORITY\NETWORK SERVICE, необходимо дать права на локальный запуск и активацию для учетной записи NetworkService.
- Предоставьте нужные разрешения для учетной записи. Например, Local Activation -> Allow и Local Launch (Локальная активация) -> Allow;
- Перезагрузите компьютер и проверьте журналы событий. Ошибка DCOM 10016 должна исчезнуть.
Здравствуйте.
Приобрел новый ноутбук Lenovo V320-17IKB, Windows10. Столкнулся с проблемой — служба Смарт-карта запускается, работает примерно 10 секунд и останавливается. При этом в журнале событий в разделе Система появляются 4
события с ошибкой:
1) Параметры
разрешений для конкретного приложения не дают разрешения Локально Активация для приложения COM-сервера с CLSID
{6B3B8D23-FA8D-40B9-8DBD-B950333E2C52}
и APPID
{4839DDB7-58C2-48F5-8283-E1D1807D0D7D}
пользователю NT AUTHORITY\LOCAL SERVICE с ИД безопасности (S-1-5-19) и адресом LocalHost (с использованием LRPC), выполняемого в контейнере приложения Недоступно с ИД безопасности (Недоступно). Это разрешение безопасности можно
изменить с помощью средства администрирования служб компонентов.
2) Параметры
разрешений по умолчанию для компьютера не дают разрешения Локально Активация для приложения COM-сервера с CLSID
{C2F03A33-21F5-47FA-B4BB-156362A2F239}
и APPID
{316CDED5-E4AE-4B15-9113-7055D84DCC97}
пользователю NT AUTHORITY\LOCAL SERVICE с ИД безопасности (S-1-5-19) и адресом LocalHost (с использованием LRPC), выполняемого в контейнере приложения Недоступно с ИД безопасности (Недоступно). Это разрешение безопасности можно
изменить с помощью средства администрирования служб компонентов.
3) Параметры
разрешений для конкретного приложения не дают разрешения Локально Активация для приложения COM-сервера с CLSID
{6B3B8D23-FA8D-40B9-8DBD-B950333E2C52}
и APPID
{4839DDB7-58C2-48F5-8283-E1D1807D0D7D}
пользователю NT AUTHORITY\LOCAL SERVICE с ИД безопасности (S-1-5-19) и адресом LocalHost (с использованием LRPC), выполняемого в контейнере приложения Недоступно с ИД безопасности (Недоступно). Это разрешение безопасности можно
изменить с помощью средства администрирования служб компонентов.
4) Параметры
разрешений по умолчанию для компьютера не дают разрешения Локально Активация для приложения COM-сервера с CLSID
{C2F03A33-21F5-47FA-B4BB-156362A2F239}
и APPID
{316CDED5-E4AE-4B15-9113-7055D84DCC97}
пользователю NT AUTHORITY\LOCAL SERVICE с ИД безопасности (S-1-5-19) и адресом LocalHost (с использованием LRPC), выполняемого в контейнере приложения Недоступно с ИД безопасности (Недоступно). Это разрешение безопасности можно
изменить с помощью средства администрирования служб компонентов.
Что
делал для решения проблемы:
1) Обновил Windows до последней сборки
2) Пробовал решения по аналогичным событиям- 10016. Решения связанные с разрешениями на разделы в реесте и разрешениями DCOM
Ничего не помогло.
Проблема очень актуальна, т.к. из-за этой службы не работает ПО «Алладин Единый клиент Jacarta» необходимое для клиент-банк.
If the Event Viewer displays an error message—The application-specific permission settings do not grant Local Activation permission for the COM Server application, or The machine-default permission settings do not grant Local Activation for the COM Server application— then this article will help you.
It comes with a DCOM Event ID 10016, and this error appears mainly after upgrading the operating system. Although this error doesn’t affect the user experience of the regular Windows 10 user, some of you might want to know why this happens and what you can do about it.
These 10016 events are recorded when Microsoft components try to access DCOM components without the required permissions. These events can usually be safely ignored because they do not adversely affect functionality and are by design.
The whole error message looks like this-
The application-specific permission settings do not grant Local Activation permission for the COM Server application with CLSID {C2F03A33-21F5-47FA-B4BB-156362A2F239} and APPID {316CDED5-E4AE-4B15-9113-7055D84DCC97} to the user NT AUTHORITY\LOCAL SERVICE SID (S-1-5-19) 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.
For your information, the CLSID and APPID can be different on your computer as they represent a component service on your computer. Regarding the solution, it is already mentioned in the error message. You need to modify the security permission from an administrative tool in Windows 10.
What is DCOM Config in Windows?
DCOM (Distributed Component Object Model) is a Microsoft technology that enables communication and data exchange between software components distributed across networked computers. It is typically used to change the security and communication settings for DCOM applications. For example, you can use DCOM Config to specify which users and groups have access to a particular DCOM application or to change the port number used for communication between the DCOM application and other computers.
To fix The application-specific (or machine-default), permission settings do not grant Local Activation error in Windows 11/10, follow these steps-
- Identify and confirm CLSID and APPID
- Change ownership of CLSID key from Registry Editor
- Modify security permission from Component Services
Read on to learn the steps in detail.
You need to identify the CLSID and APPID. As they can be different on your computer, this is very important to recognize them. Otherwise, you won’t be able to get rid of this Event Viewer error message. According to the error mentioned above, the CLSID is {C2F03A33-21F5-47FA-B4BB-156362A2F239}, and the APPID is {316CDED5-E4AE-4B15-9113-7055D84DCC97}. There is another item called SID, but that is not necessary at this moment.
Now you need to find the component that is creating the issue. For that, open up the Registry Editor on your computer. To do so, press Win+R, type regedit, and the Enter button. After that, navigate to this path-
HKEY_Classes_Root\CLSID\<Enter-your-CLSID>
Do not forget to replace the Enter-your-ClSID with the original CLSID you got in the error message. After getting it, you should find the APPID on your right-hand side. Make sure this APPID and the previous APPID (that is mentioned in the error message) are the same. After confirming, right-click on the CLSID on your left-hand side, and select the Permissions option.
Then, click the Advanced button.
By default, this key is owned by TrustedInstaller, but you need to change the owner to Administrator. For that, click the Change button in the Advanced Security Settings window > write down “Administrator” > click the Check Names button > click the OK button.
Also, you need to select the Replace owner on subcontainers and objects check-box.
After doing that, select Administrators from the Group or user names list, and make a tick in the Allow/Full Control checkbox. Now save your settings.
Also, you need to check the Default – Data name. In this example, the Default Data name is Immersive Shell. It should be different if the CLSID and APPID are different in your error message.
After that, you also need to take ownership of the APPID. For that, navigate to this path in the Registry Editor-
HKEY_Local_Machine\Software\Classes\AppID\your-APPID
You need to do the same as above to change the ownership of that Registry key.
In case you are facing any problem changing the ownership of the Registry key, you can check out our free tool called RegOwnit, which lets you do it with a click.
After completing these steps, you need to open the Component Services. You can search for it in the Taskbar box and click the corresponding result. After opening Component Services, go here-
Component Services > Computer > My Computer > DCOM Config > Immersive Shell
Based on this example, the CLSID matches this Immersive Shell component service. You need to find the Default – Data name that you got from the Registry Editor. After recognizing, right-click on the component service and select Properties. Here you should find the Application ID or APPID that you can confirm again.
Next, go to the Security tab. Here you can find three labels, including Launch and Activation Permissions. Click the corresponding Edit button.
If you get any warning message, click the Cancel button and go ahead. You need to follow the same steps as above to add two accounts-
- SYSTEM
- LOCAL SERVICE
After adding them, select one at a time, and give both local Launch and Local Activation permissions.
Save the changes, and you won’t get the same issue in the Event Viewer again.
Whether you get the issue with RuntimeBroker, Immersive Shell, or any other process, the solution is the same for all of them.
Is there an alternative to DCOM CONFIG?
No, there is no direct alternative to DCOM CONFIG. However, you can achieve a similar result using the Registry or the command line utility DCOMCNFG. You can use the latter to configure DCOM settings from a script or command prompt executed from Windows Terminal or PowerShell.
В этом посте я покажу вам, как исправить ошибку с идентификатором события 10016 из источника DistributedCOM на компьютере с Windows 10 / Windows Server 2012 R2. Ошибка DCOM 10016 довольно часто встречается в клиентских и серверных версиях Windows со времен Windows XP и исправляется одинаково, независимо от выпуска Windows.
Проблема проявляется следующим образом: В журнале системных событий при запуске компьютера или при попытке запустить / установить приложение появляется следующая ошибка:
Имя журнала: Система
Источник: DistributedCOM
Идентификатор события: 10016
Уровень: Ошибка
Пользователь: SYSTEM
Описание. Параметры разрешений для конкретного приложения не предоставляют разрешение на локальный запуск для приложения COM-сервера с CLSID {1CCB96F4-B8AD-4B43-9688-B273F58E0910} и APPID {AD65A69D-3831-40D7-9629-9B0B50A93843} NT AUTHORITY \ system пользователю с SID (S-1-5-18) и адрес LocalHost (с использованием LRPC). Это разрешение безопасности можно изменить с помощью служебной программы управления службами компонентов.
В английских версиях Windows описание ошибки выглядит следующим образом:
Параметры разрешений машины по умолчанию не предоставляют разрешения на локальную активацию для приложения COM-сервера с CLSID
{000209FF-0000-0000-C000-000000000046} и APPID Недоступны для пользователя IIS APPPOOL \ appIISPool SID (S-1-5-82-3351576649-1006875745-771203599-42452693-1279824824) с адреса LocalHost (с использованием LRPC), на котором запущен Контейнер приложения SID недоступен (недоступен). Это разрешение безопасности можно изменить с помощью инструмента администрирования служб компонентов.
Судя по описанию ошибки: определенный пользователь (например IIS Apppool) или система (NT AUTHORITY \ system) пытается запустить определенный COM-компонент с помощью инфраструктуры DCOM и не может этого сделать из-за отсутствия «Локального запуска» или «Локальная активация» (Local Activation Permission). Код ошибки содержит только коды классов COM для компонента и приложения. Пытаемся определить, к какому приложению принадлежит идентификатор, и даем необходимые права для его запуска.
Скопируйте CLSID и APPID из описания события. В моем случае это
CLSID: {000209FF-0000-0000-C000-000000000046}
APPID: {AD65A69D-3831-40D7-9629-9B0B50A93843}
(в некоторых случаях идентификатор приложения может быть не указан – APPID недоступен).
Также обратите внимание, какие разрешения отсутствуют (разрешение локальной активации) и для какой учетной записи (NT AUTHORITY \ SYSTEM или IIS APPPOOL \ appIISPool SID – S-1-5-82-3351576649-1006875745-771203599-42452693-1279824824).
Идентификаторы класса, приложения, учетной записи и типа входа в систему могут варьироваться в зависимости от конкретного случая.
- Запустите редактор реестра (regedit.exe);
- Перейдите в ветку реестра, соответствующую вашему CLSID. У меня этот HKEY_CLASSES_ROOT \ CLSID \ {000209FF-0000-0000-C000-000000000046}; В некоторых случаях вам также необходимо выполнить поиск в разделе реестра [HKEY_CLASSES_ROOT \ Wow6432Node \ CLSID \. При удаленном входе в реестр он будет расположен в HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes \ AppID.
- Параметр класса должен содержать имя. У меня есть это приложение Microsoft Word; чаще всего эта проблема возникает с компонентами:
Иммерсивная оболочка
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} - Щелкните правой кнопкой мыши раздел реестра и выберите Разрешения);
- Нажмите кнопку «Дополнительно;
- В разделе «Владелец» будет указан NT Service \ TrustedInstaller или System;
- Нажмите кнопку «Изменить» и укажите имя для своей управляющей учетной записи. Сохраните изменения;
- Обратите внимание, что в вашей учетной записи изменилось имя владельца филиала. Установите флажок Заменить владельца подконтейнеров и объектов и нажмите «ОК”;
- В списке разрешений добавьте свою учетную запись администратора и дайте ей полные права);
- Вы предоставили ветку CLSID. Теперь вам нужно повторить предыдущие шаги, предоставив права учетной записи администратора ветке с ее APPID из текста ошибки (например, HKEY_CLASSES_ROOT \ AppID \ {AD65A69D-3831-40D7-9629-9B0B50A93843};
- Теперь запустите консоль управления компонентом dcomcnfg с правами администратора (Панель управления \ Все элементы панели управления \ Администрирование \ Службы компонентов);
- В консоли компонентов перейдите в Службы компонентов -> Компьютер -> Мой компьютер -> Конфигурация DCOM. В списке компонентов найдите имя компонента, который вы определили на втором шаге (значение в столбце Application ID должно совпадать с CLSID ошибки). Откройте свойства компонента;
Если вы не можете найти свой компонент в списке, вероятно, у вас 64-разрядная версия Windows, а запущенный компонент 32-разрядный. В этом случае необходимо запустить консоль DCOM командой:
mmc comexp.msc /32
- Перейдите на вкладку Безопасность. Все элементы управления должны быть доступны для редактирования;
Если вы откроете консоль dcomcnfg до изменения разрешений в ветке реестра, все настройки на вкладке «Безопасность» будут заблокированы (недоступны для изменения), даже если вы запустили консоль от имени администратора.
- В моем случае у приложения не было разрешения на локальную активацию. В разделе «Разрешения на запуск и активацию» выберите «Настроить» и нажмите кнопку «Изменить;
- вам необходимо добавить в список доступа учетную запись, у которой не было разрешений на запуск. Имя учетной записи было указано в тексте ошибки – в зависимости от текста в ошибке DCOM 10016 это может быть система, пользователь или конкретная учетная запись, под которой запущен пул IIS (в этом случае вам необходимо добавить доступ для локальная группа IIS_IUSR). Если NT AUTHORITY \ NETWORK SERVICE был указан в исходном журнале ошибок вместо NT AUTHORITY \, учетной записи NetworkService должны быть предоставлены права на локальный запуск и активацию.
- Предоставьте учетной записи необходимые разрешения. Например, «Локальная активация» -> «Разрешить» и «Локальный запуск» -> «Разрешить;
- Перезагрузите компьютер и проверьте журналы событий. Ошибка DCOM 10016 должна исчезнуть.
Источник изображения: winitpro.ru
Далеко не все случающиеся в Windows ошибки проявляют себя явно, так что пользователь может даже не подозревать о их наличии пока не откроет раздел «Система» в журнале событий Windows. Сегодня мы постараемся разобрать причины одной из таких ошибок. Встречается она довольно часто, причём во всех версиях Windows начиная с XP, имеет код 10016 и примерно следующее описание:
Параметры разрешений для конкретного приложения не дают разрешения Локально Активация для приложения COM-сервера с CLSID {260EB9DE-5CBE-4BFF-A99A-3710AF55BF1E} и APPID {260EB9DE-5CBE-4BFF-A99A-3710AF55BF1E} пользователю DESKTOP-AEM9850/компик с ИД безопасности…
Здесь приводится лишь часть описания ошибки, на деле оно может быть более объёмным и отличаться в деталях. Из описания следует, что пользователь DESKTOP-AEM9850/компик (пользователем может быть и система) пытается запустить некий COM-компонент, но не может этого сделать по причине отсутствия соответствующих прав. Что за компонент и какое именно приложение вызывает ошибку Windows прямо не указывает, всё что нам известно, это CLSID компонент и идентификатор приложения.
Задача заключается в том, чтобы определить, какому приложению принадлежит идентификатор, а затем предоставить пользователю или системе соответствующие права для его запуска. Проще всего это сделать через реестр. Откройте командой regedit редактор реестра и разверните ветку HKEY_CLASSES_ROOT/AppID. Воспользовавшись встроенным поиском, найдите в подразделе APPID приложения (в нашем примере это {260EB9DE-5CBE-4BFF-A99A-3710AF55BF1E}).
После того как ключ будет найден, потребуется предоставить к нему полные права доступа пользователю, имя (первая его часть) которого указывается в описании. Для этого кликаем правой кнопкой мыши по ключу, выбираем «Разрешения»
И жмём в открывшемся окошке кнопку «Дополнительно».
Как видим, в данном примере владельцем ключа является TrustedInstaller. Заменим его администратором (пользователем DESKTOP-AEM9850).
Кликните по ссылке «Изменить».
Введите имя локального пользователя, нажмите «OK».
Установите галочку «Заменить владельца подконтейнеров и объектов» и еще раз нажмите «OK».
Теперь во второй раз откройте окошко разрешений для группы, выделите в нём администратора, коим был заменён TrustedInstaller, отметьте галочкой чекбокс «Полный доступ» и сохраните новые настройки.
Отлично, возвращаемся в редактор реестра и запоминаем значение параметра по умолчанию для найденного ранее ключа.
У нас это InstallAgent. Далее командой comexp.msc или dcomcnfg в окошке «Выполнить» открываем оснастку «Службы компонентов» и разворачиваем в меню «Компьютеры» -> «Мой компьютер» -> «Настройка DCOM» и находим компонент с именем параметра по умолчанию (InstallAgent). Через контекстное меню вызываем его свойства.
Переключаемся на вкладку «Безопасность», в блоке «Разрешения на запуск и активацию» жмём «Изменить».
Выбираем пользователя, устанавливаем галочки в чекбоксах «Локальный запуск» и «Локальная активация» после чего сохраняем настройки и перезагружаем компьютер.
В принципе, эти действия должны устранить ошибку, если только её появление было связано с отсутствием необходимых прав доступа, однако стопроцентной гарантии, что всё будет именно так дать нельзя.
Загрузка…