Обновлено 19.08.2021
Доброго времени суток, уважаемые читатели, сегодня решаем ошибку 10016 параметры разрешений для конкретного приложения не дают разрешения Локально Активация для приложения COM-сервера с CLSID {D63B10C5-BB46-4990-A94F-E40B9D520160} и APPID {9CA88EE3-ACB7-47C8-AFC4-AB702511C276} в Windows server 2012 R2.
Ошибка 10016 в windows 10 и Windows Server
На сервере Windows Server 2012 R2 постоянно возникает ошибка 10016.
Имя журнала: Система
Источник: DistributedCOM
Код: 10016
{D63B10C5-BB46-4990-A94F-E40B9D520160}
Параметры разрешений для конкретного приложения не дают разрешения Локально Активация для приложения COM-сервера с CLSID
{D63B10C5-BB46-4990-A94F-E40B9D520160}
и APPID
{9CA88EE3-ACB7-47C8-AFC4-AB702511C276} или {316CDED5-E4AE-4B15-9113-7055D84DCC97} или {4839DDB7-58C2-48F5-8283-E1D1807D0D7D}
пользователю NT AUTHORITYСИСТЕМА с ИД безопасности (S-1-5-18) и адресом LocalHost (с использованием LRPC), выполняемого в контейнере приложения Недоступно с ИД безопасности (Недоступно). Это разрешение безопасности можно изменить с помощью средства администрирования служб компонентов.
The application-specific permission settings do not grant Local Activation permission for the COM Server application with CLSID
{6B3B8D23-FA8D-40B9-8DBD-B950333E2C52}
and APPID
{4839DDB7-58C2-48F5-8283-E1D1807D0D7D}
to the user NT AUTHORITYLOCAL 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.
Данная ошибка выскакивает, когда какая-то из утилит не может обратиться к DCOM объекту, чаще всего, это связано с недостаточностью разрешений. Был реализован шаблон кодирования, где код сначала пытается получить доступ к компонентам DCOM с одним набором параметров. Если первая попытка не удалась, она пытается снова с другим набором параметров. Причина, по которой он не пропускает первую попытку, заключается в том, что существуют сценарии, в которых он может быть успешным. В этих сценариях это предпочтительнее. Если вы не в курсе, что такое COM объекты и DCOM, то если по простому, это концепция для создания программного обеспечения на основе взаимодействующих компонентов объекта, каждый из которых может использоваться во многих программах одновременно. На основе COM были созданы ActiveX, DCOM, COM+, DirectX, .Net.
- {316CDED5-E4AE-4B15-9113-7055D84DCC97} — Кнопка пуск (Immersive Shell) — интерфейс метро
- {4839DDB7-58C2-48F5-8283-E1D1807D0D7D} — ShellServiceHost
- {9CA88EE3-ACB7-47C8-AFC4-AB702511C276} — RuntimeBroker
Подробнее вы можете почитать в вики https://ru.wikipedia.org/wiki/Component_Object_Model
Сначала нужно обновить Windows через центр обновления, и если не поможет, то делаем по очереди предложенные решения:
- Назначаем недостающие права на ветку с GUID номером {9CA88EE3-ACB7-47C8-AFC4-AB702511C276} или другим, зависит от вашей ситуации с кодом ошибки 10016
- Удаление некоторых ключей реестра
- Использование скрипта PowerShell
Как исправить ошибку 10016 через назначение прав в реестре
- Сразу логинимся на проблемный сервер под администратором, чтобы не вводить всякий раз имя и пароль. Запускаем Regedit.
- Запускаем поиск (CTRL+F) и ищем второй из GUIDов в описании ошибки, т.е. APPID. В данном случае это «{9CA88EE3-ACB7-47C8-AFC4-AB702511C276}».
- Первый результат поиска должен быть в ключе HKEY_CLASSES_ROOTAppID. Наступаем на найденный GUID в левой панели и щелкаем правой кнопкой, выбираем Разрешения, а затем кнопку Дополнительно.
- В верхней части дополнительных параметров указан текущий владелец TrustedInstaller. Нажимаем рядом с ним ссылку Изменить.
- Нам нужно сделать владельцем локальную группу Администраторы. Затем кнопки Дополнительно, Поиск и выбираем в результатах поиска Администраторы.
- Ставим флажок «Заменить владельца подконтейнеров и объектов», кнопка ОК.
- После смены владельца мы можем изменять разрешения. В окне Разрешения на вкладке Безопасность даем для СИСТЕМА и Администраторы разрешение на полный доступ. ОК.
- Далее смотрим для нашего ключа HKEY_CLASSES_ROOTAppID{9CA88EE3-ACB7-47C8-AFC4-AB702511C276} значение параметра «(По умолчанию)» = «RuntimeBroker«.
8. В диспетчере серверов в правом верхнем углу меню Средства -> Службы компонентов. Открываем Компьютеры –> Мой компьютер –> Настройка DCOM. Правый клик по строке из п.7 RuntimeBroker, Свойства.
9. На вкладке Безопасность. В разделе Разрешения на запуск и активацию кнопка Изменить. Для группы СИСТЕМА разрешаем Локальный запуск и Локальная активация. ОК. Если вам runtimebroker не дает отредактировать настройки, то вам нужно дать права на него в реестре Windows
Открываем редактор реестра Windows. Переходим в ветку
HKEY_CLASSES_ROOTAppIDRuntimeBroker.exe
щелкаем по нему правым кликом и выбираем свойства.
Даем права для группы администраторы (Полный доступ)
Если не даст вам поставить, то вам нужно заменить владельца Trustinstaller на себя или группу администраторы. Как только дали права, идем опять в компоненты DCOM и выставляем права, как описывал выше.
10. Перезагружаем сервер, проверяем логи, по сути ошибку 10016 параметры разрешений для конкретного приложения не дают разрешения Локально Активация для приложения COM-сервера с CLSID {D63B10C5-BB46-4990-A94F-E40B9D520160} и APPID {9CA88EE3-ACB7-47C8-AFC4-AB702511C276} вы не должны больше увидеть.
Как исправить ошибку 10016 через удаление ключей из ветки OLe
Данный метод подразумевает удаление нескольких ключей реестра, которые отвечают за проверку прав на COM объекты. Нас будет интересовать ветка реестра:
HKEY_LOCAL_MACHINESOFTWAREMicrosoftOle
Ole — эта ветка управляют параметрами запуска по умолчанию и разрешениями доступа, а также возможностями безопасности на уровне вызовов для приложений на основе COM, которые не вызывают CoInitializeSecurity. Только администраторы, создатель объекта и система имеют полный доступ к этой части реестра. Все остальные пользователи имеют доступ только для чтения.
Перед тем, как вы будите вносить изменения я вам советую на всякий случай сделать резервную копию реестра или ветки.
Щелкаем по контейнеру Ole правым кликом и из контекстного меню выберите пункт Экспорт.
Задаем имя экспортируемого ключа. В случае проблем вы всегда сможете его импортировать и вернуть все к исходному состоянию.
Теперь, чтобы исправить ошибку 10016 в Windows 10 или как у меня в Windows Server 2012 R2 или выше, вам необходимо удалить четыре ключа:
- DefaultAccessPermission — Определяет список разрешений доступа по умолчанию для компьютера. Устанавливает список контроля доступа (ACL) участников, которые могут получить доступ к классам, для которых нет настройки AccessPermission . Этот ACL используется только приложениями, которые не вызывают CoInitializeSecurity и не имеют значения AccessPermission под своим ключом AppID. Среда выполнения COM на сервере проверяет ACL, описываемый этим значением, при олицетворении вызывающей стороны, которая пытается подключиться к объекту, и ее успех определяет, разрешен или запрещен доступ. Если проверка доступа не пройдена, соединение с объектом будет запрещено. Если это именованное значение не существует, только серверу участника и локальной системе разрешается вызывать сервер. По умолчанию это значение не содержит записей. Только принципал сервера и система могут вызывать сервер. Это значение обеспечивает простой уровень централизованного администрирования доступа по умолчанию к подключенным объектам на компьютере.
- DefaultLaunchPermission — Определяет список запуска по умолчанию для компьютера. Определяет список контроля доступа (ACL) участников, которые могут запускать классы, которые не указывают свой собственный ACL через значение реестра LaunchPermission. Права доступа по умолчанию следующие: Администраторы: разрешить запуск, СИСТЕМА: разрешить запуск, ИНТЕРАКТИВНО: разрешить запуск. Если значение LaunchPermission установлено для сервера, оно имеет приоритет над значением DefaultLaunchPermission . После получения локального или удаленного запроса на запуск сервера, у которого ключ AppID не имеет собственного значения LaunchPermission, проверяется ACL, описанный этим значением, при олицетворении клиента, и его успех разрешает или запрещает запуск кода класса.Это значение обеспечивает простой уровень централизованного администрирования запуска по умолчанию для доступа к другим незарегистрированным классам на компьютере. Например, администратор может использовать инструмент DCOMCNFG для настройки системы, чтобы разрешить доступ только для чтения для опытных пользователей. Поэтому OLE будет ограничивать запросы на запуск кода класса членами группы «Опытные пользователи». Впоследствии администратор может настроить разрешения на запуск для отдельных классов, чтобы предоставить возможность запуска кода класса другим группам или отдельным пользователям по мере необходимости.
- MachineAccessRestriction — Устанавливает политику ограничения на уровне компьютера для доступа к компоненту. Принципалы, которым здесь не предоставлены разрешения, не могут получить их, даже если разрешения предоставляются значением реестра DefaultAccessPermission или функцией CoInitializeSecurity. По умолчанию члены группы «Все» могут получать разрешения на локальный и удаленный доступ, а анонимные пользователи могут получать разрешения на локальный доступ.
- MachineLaunchRestriction — Устанавливает политику ограничения на уровне компьютера для запуска и активации компонента. Принципалы, которым здесь не предоставлены разрешения, не могут получить их, даже если разрешения предоставляются значением реестра DefaultAccessPermission или функцией CoInitializeSecurity. По умолчанию администраторы могут получать разрешения на локальный и удаленный запуск и активацию, а члены группы «Все» могут получать разрешения на локальную активацию и запуск.
Подробнее о данной ветке можно почитать по адресу https://docs.microsoft.com/en-us/windows/win32/com/hkey-local-machine-software-microsoft-ole
теперь находим все эти ключи, щелкаем по ним правым кликом мыши и удаляем со спокойной душей, далее я вам советую перезагрузить вашу систему. В подавляющем количестве случаев ошибка с кодом 10016 у вас больше не появится.
Исправление ошибки 10016 через PowerShell
Если вам не удалось изменить запуск службы для системы, то можно все поправить и избавиться от сообщений «APPID
{9CA88EE3-ACB7-47C8-AFC4-AB702511C276}
пользователю NT AUTHORITYСИСТЕМА с ИД безопасности (S-1-5-18) и адресом LocalHost (с использованием LRPC), выполняемого в контейнере приложения Недоступно с ИД безопасности (Недоступно)» с помощью скрипта PowerShell. Открываем ссылку с Microsoft
https://gallery.technet.microsoft.com/Grant-Revoke-Get-DCOM-22da5b96
Или во тут
Скачиваем тут сценарий DCOMPermissions.psm1
Кладем данный модуль в нужную вам папку. Далее вы открываете консоль PowerShell и переходите в месторасположение данного модуля, после чего его нужно импортировать:
Import-Module .DCOMPermissions.psm1
Grant-DCOMPermission -ApplicationID «{9CA88EE3-ACB7-47C8-AFC4-AB702511C276}» -Account «SYSTEM» -Type Launch -Permissions LocalLaunch,LocalActivation -OverrideConfigurationPermissions
Если ошибок не вышло, то значит все успешно применено, перезагрузка не потребуется.
Далее вы можете посмотреть примененные разрешения:
Get—DCOMPermission —ApplicationID «{9CA88EE3-ACB7-47C8-AFC4-AB702511C276}» —Type Launch
Вы увидите права у системы, у нее будет SID S-1-5-10.
На этом у меня все, мы успешно устранили ошибку DCOM 10016. Я должен подчеркнуть, что ошибка DCOM 10016 вряд ли повлияет на производительность вашей системы. В очень старые времена, когда Microsoft впервые представила «Distributed» в компонентной объектной модели, были уязвимости. Однако эти уязвимости были исправлены, и DCOM теперь безопасен. С вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org.
В этой заметке я покажу, как исправить ошибку 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.
Судя по описанию ошибки: некий пользователь (например, 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 AUTHORITYSYSTEM или IIS APPPOOLappIISPool SID — S-1-5-82-3351576649-1006875745-771203599-42452693-1279824824).
В каждом конкретном случае идентификаторы класса, приложения, учетной записи и типа доступа может отличаться.
- Запустите редактор реестра (regedit.exe);
- Перейдите в ветку реестра, соответствующую вашему CLSID. У меня это HKEY_CLASSES_ROOTCLSID{000209FF-0000-0000-C000-000000000046};
В некоторых случаях нужно смотреть также в разделе реестра [HKEY_CLASSES_ROOTWow6432NodeCLSID. При удаленном подключении к реестру он будет находиться в разделе HKEY_LOCAL_MACHINESOFTWAREClassesAppID.
- В параметре класса должно быть указано имя. У меня это 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 ServiceTrustedInstaller или System;
- Нажмите кнопку Change и укажите имя своей учетной записи администратора. Сохраните изменения;
- Обратите внимание, что имя владельца ветки сменилось на вашу учетную запись. Поставьте галку Replace owner on subcontainers and objects (Заменить владельца подконтейнеров и объектов) и нажмите “ОК”;
- В списке разрешений добавьте вашу учетную запись администратора и предоставьте ей полный доступ (Full Permissions);
- Вы предоставили права на ветку с CLSID. Теперь нужно повторить предыдущие шаги, предоставив учетной записи администратора права на ветку с вашим идентификатором APPID из текста ошибки (например, HKEY_CLASSES_ROOTAppID{AD65A69D-3831-40D7-9629-9B0B50A93843};
- Теперь запустите консоль управления компонентами dcomcnfg с правами администратора (Control PanelAll Control Panel ItemsAdministrative ToolsComponent 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 AUTHORITYNETWORK SERVICE, необходимо дать права на локальный запуск и активацию для учетной записи NetworkService.
- Предоставьте нужные разрешения для учетной записи. Например, Local Activation -> Allow и Local Launch (Локальная активация) -> Allow;
- Перезагрузите компьютер и проверьте журналы событий. Ошибка DCOM 10016 должна исчезнуть.
-
Partition Wizard
-
Partition Magic
- [Resolved] The Application-Specific Permission Settings Error
By Ariel | Follow |
Last Updated December 24, 2021
A lot of Windows 10 users encounter the application-specific permission settings do not grant local activation permission error. If you are also trying to fix the problem, this post of MiniTool is what you need.
What Causes The Application-Specific Permission Settings Error
According to user reports, the application-specific permission settings do not grant local activation permission for the COM Server Application with CLSID error can be found in system event logs. The detailed error message is often accompanied by this security permission can be modified using the component services administrative tool.
As indicated in the event log, the main reason for the “COM Server application with CLSID” error is invalid permissions. The error also occurs when a specific process doesn’t have enough permissions to the COM components.
Some users reported that their system can still function correctly when the error occurs. Under this situation, you can let it be. If the error prevents certain applications or services from functioning correctly, you can follow the troubleshooting method below to fix it.
How to Fix The Application-Specific Permission Settings Do Not Grant Local Activation Permission Error
To fix the application-specific permission settings do not grant local activation permission error, you can follow the steps below to grant access to these DCOM components.
Step 1. Press Win + R keys to open the Run dialog box, and then type Regedit in the box and hit Enter.
Step 2. Navigate to the following path from the left sidebar, and then double click the Default entry key from the right pane and note down its Value data.
HKEY_CLASSES_ROOTCLSID{D63B10C5-BB46-4990-A94F-E40B9D520160}
Tip: To find the entry key quickly, you can press Ctrl + F keys to open the Find what box, and then type HKEY_CLASSES_ROOTCLSID{D63B10C5-BB46-4990-A94F-E40B9D520160} in the box and click on Find Next.
Step 3. Navigate to the following path, and then right-click the {9CA88EE3-ACB7-47c8-AFC4-AB702511C276} key from the left pane and select Permissions from the list.
HKEY_CLASSES_ROOTAppID{9CA88EE3-ACB7-47C8-AFC4-AB702511C276}
Step 4. In the Permissions window, click on Advanced.
Step 5. Click on the Change link next to the TrustedInstaller option. In the pop-up window, click on Object Type and select Users, and click on OK.
Note: The Owner should be TrustedInstaller, or it may show the “Cannot Display Owner” error.
Step 6. Click on Locations and select your Desktop name, and click on OK.
Step 7. Enter your username in the field and click on Check Names. Here we take the Administrator for example. After that, click on OK and Apply in the Advanced Security Settings window.
Note: You need to repeat the operation in Steps 3-7 for the HKEY_CLASSES_ROOTCLSID{D63B10C5-BB46-4990-A94F-E40B9D520160} as well.
Step 8. Come back to the Permissions window that we opened in Step 4.
Step 9. Select Administrators from the Group or user names heading and tick the checkbox for Full Control. Then select Users and check the Full Control option again. Once done, click on OK and Apply to save changes.
Step 10. Open the Run box again, and then type dcomcnfg.exe in it and hit Enter.
Step 11. In the Component Services window, navigate to the following path. Right-click RuntimeBroker from the listed services and select Properties.
Component Services>Computers>My Computer>DCOM Config
Step 12. If the Application ID is 9CA88EE3-ACB7-47C8–AFC4–AB702511C276, it indicates that you selected the right application. Then you can go to the Security tab, and then select Customize and click on Edit under the Launch and Activation Permissions section. When there is a Windows Security prompt, click on Remove.
Step 13. Click on Add, and then type NT AUTHORITYLOCAL SERVICE in the Enter The objects Name to select field and click on OK. If there is no NT AuthorityLocal Service, type Local Service instead.
Step 14. Grant Full Control to the Local Activation permission of the entry.
Now, you can check if the application-specific permission settings do not grant local activation permission for the COM error is gone.
About The Author
Position: Columnist
Ariel has been working as a highly professional computer-relevant technology editor at MiniTool for many years. She has a strong passion for researching all knowledge related to the computer’s disk, partition, and Windows OS. Up till now, she has finished thousands of articles covering a broad range of topics and helped lots of users fix various problems. She focuses on the fields of disk management, OS backup, and PDF editing and provides her readers with insightful and informative content.
Если в средстве просмотра событий отображается сообщение об ошибке Параметры разрешений для конкретного приложения не предоставляют разрешение на локальную активацию для приложения COM-сервера., тогда эта статья вам поможет. Он поставляется с Идентификатор события DCOM 10016, и эта ошибка появляется в основном после обновления операционной системы. Хотя эта ошибка не влияет на работу обычного пользователя Windows 10, некоторые из вас могут захотеть узнать, почему это происходит и что вы можете с этим сделать.
Эти 10016 событий записываются, когда компоненты Microsoft пытаются получить доступ к компонентам DCOM без необходимых разрешений. Эти события обычно можно безопасно игнорировать, потому что они не влияют отрицательно на функциональность и являются преднамеренными.
Все сообщение об ошибке выглядит так:
Параметры разрешений для конкретного приложения не предоставляют разрешение локальной активации для приложения COM-сервера с CLSID {C2F03A33-21F5-47FA-B4BB-156362A2F239} и APPID {316CDED5-E4AE-4B15-9113-7055D84DCC97} пользователю NT AUTHORITY LOCAL SERVICE SID (S-1-5-19) с адреса LocalHost (с использованием LRPC), запущенного в контейнере приложения. Недоступный SID (недоступен). Это разрешение безопасности можно изменить с помощью инструмента администрирования служб компонентов.
Для вашего сведения, CLSID и APPID могут отличаться на вашем компьютере, поскольку они представляют собой компонентную службу на вашем компьютере. Что касается решения, оно уже упоминается в сообщении об ошибке. Вам необходимо изменить разрешение безопасности с помощью инструмента администрирования в Windows 10.
Параметры разрешений для конкретного приложения не предоставляют локальную активацию
Чтобы исправить настройки разрешений для конкретного приложения не выдают ошибку локальной активации в Windows 10, выполните следующие действия:
- Определите и подтвердите CLSID и APPID
- Измените владельца ключа CLSID из редактора реестра
- Изменить разрешение безопасности из служб компонентов
Прочтите, чтобы узнать подробности о шагах.
Вам необходимо определить CLSID и APPID. Поскольку на вашем компьютере они могут быть разными, очень важно их распознать. В противном случае вы не сможете избавиться от этого сообщения об ошибке средства просмотра событий. Согласно вышеупомянутому сообщению об ошибке, CLSID — {C2F03A33-21F5-47FA-B4BB-156362A2F239}, а APPID — {316CDED5-E4AE-4B15-9113-7055D84DCC97}. Есть еще один элемент, называемый SID, но в данный момент он не нужен.
Теперь вам нужно найти компонент, который создает проблему. Для этого откройте редактор реестра на своем компьютере. Для этого нажмите Win + R, введите regeditи кнопку Enter. После этого перейдите по этому пути —
HKEY_Classes_RootCLSID<Enter-your-CLSID>
Не забудьте заменить Введите ваш-ClSID с исходным CLSID, который вы получили в сообщении об ошибке. Получив его, вы должны найти APPID справа. Убедитесь, что этот APPID и предыдущий APPID (упомянутый в сообщении об ошибке) совпадают. После подтверждения щелкните правой кнопкой мыши CLSID слева и выберите Разрешения вариант.
Затем щелкните значок Передовой кнопка.
По умолчанию этот ключ принадлежит TrustedInstaller, но вам нужно изменить владельца на администратора. Для этого нажмите кнопку Изменять кнопка в Расширенные настройки безопасности окно> напишите «Администратор»> щелкните Проверить имена кнопку> щелкните Ok кнопка.
Также вам нужно выбрать Заменить владельца подконтейнеров и объектов флажок.
После этого выберите Администраторы от Группы или имена пользователей список и отметьте Разрешить / Полный доступ флажок. Теперь сохраните ваши настройки.
Также вам необходимо проверить По умолчанию — Данные имя. В этом примере имя данных по умолчанию — Иммерсивная оболочка. Он должен быть другим, если в вашем сообщении об ошибке используются разные идентификаторы CLSID и APPID.
После этого вам также необходимо стать владельцем APPID. Для этого перейдите по этому пути в редакторе реестра —
HKEY_Local_MachineSoftwareClassesAppIDyour-APPID
Вам нужно сделать то же самое, что и выше, чтобы изменить владельца этого ключа реестра.
Если у вас возникла проблема с изменением владельца ключа реестра, вы можете воспользоваться нашим бесплатным инструментом RegOwnit, который позволяет сделать это одним щелчком мыши.
Если вы выполнили эти шаги, вам нужно открыть Компонентные услуги. Вы можете найти его в поле поиска на панели задач и щелкнуть соответствующий результат. После открытия Component Services перейдите сюда —
Component Services > Computer > My Computer > DCOM Config > Immersive Shell
В этом примере CLSID совпадает с этой службой компонента Immersive Shell. Вам нужно найти По умолчанию — Данные имя, полученное вами в редакторе реестра. После распознавания щелкните правой кнопкой мыши компонентную службу и выберите Характеристики. Здесь вы должны найти ID приложения или же APPID что вы можете подтвердить еще раз.
Далее перейдите к Безопасность таб. Здесь можно найти три метки, в том числе Разрешения на запуск и активацию. Щелкните соответствующий Редактировать кнопка.
Если вы получили какое-либо предупреждающее сообщение, щелкните значок Отмена кнопку и вперед. Вам нужно выполнить те же шаги, что и выше, чтобы добавить две учетные записи —
После добавления выбирайте по одному и дайте Локальный запуск и Локальная активация разрешения для них обоих.
Сохраните изменения, вы больше не получите ту же проблему в средстве просмотра событий.
Независимо от того, возникла ли у вас проблема с RuntimeBroker, Immersive Shell или любым другим процессом, решение будет одинаковым для всех.
Ошибка 10016 в windows 10 и Windows Server
На сервере Windows Server 2012 R2 постоянно возникает ошибка 10016.
Имя журнала: Система Источник: DistributedCOM Код: 10016
{D63B10C5-BB46-4990-A94F-E40B9D520160}
Параметры разрешений для конкретного приложения не дают разрешения Локально Активация для приложения COM-сервера с CLSID {D63B10C5-BB46-4990-A94F-E40B9D520160} и APPID {9CA88EE3-ACB7-47C8-AFC4-AB702511C276} или {316CDED5-E4AE-4B15-9113-7055D84DCC97} или {4839DDB7-58C2-48F5-8283-E1D1807D0D7D} пользователю NT AUTHORITYСИСТЕМА с ИД безопасности (S-1-5-18) и адресом LocalHost (с использованием LRPC), выполняемого в контейнере приложения Недоступно с ИД безопасности (Недоступно). Это разрешение безопасности можно изменить с помощью средства администрирования служб компонентов.
The application-specific permission settings do not grant Local Activation permission for the COM Server application with CLSID {6B3B8D23-FA8D-40B9-8DBD-B950333E2C52} and APPID {4839DDB7-58C2-48F5-8283-E1D1807D0D7D} to the user NT AUTHORITYLOCAL 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.
Данная ошибка выскакивает, когда какая-то из утилит не может обратиться к DCOM объекту, чаще всего, это связано с недостаточностью разрешений. Был реализован шаблон кодирования, где код сначала пытается получить доступ к компонентам DCOM с одним набором параметров. Если первая попытка не удалась, она пытается снова с другим набором параметров. Причина, по которой он не пропускает первую попытку, заключается в том, что существуют сценарии, в которых он может быть успешным. В этих сценариях это предпочтительнее. Если вы не в курсе, что такое COM объекты и DCOM, то если по простому, это концепция для создания программного обеспечения на основе взаимодействующих компонентов объекта, каждый из которых может использоваться во многих программах одновременно. На основе COM были созданы ActiveX, DCOM, COM+
, DirectX, .Net.
- {316CDED5-E4AE-4B15-9113-7055D84DCC97} — Кнопка пуск (Immersive Shell) — интерфейс метро
- {4839DDB7-58C2-48F5-8283-E1D1807D0D7D} — ShellServiceHost
- {9CA88EE3-ACB7-47C8-AFC4-AB702511C276} — RuntimeBroker
Подробнее вы можете почитать в вики https://ru.wikipedia.org/wiki/Component_Object_Model
Респект за пост! Спасибо за работу!
Хотите больше постов? Новости технологий? Обзоры гаджетов? Для всего этого, а также для продвижения сайта, развития, покупки нового дизайна и оплаты хостинга, мне необходима помощь от вас, читатели. Подробнее о донатах читайте на специальной странице.
На данный момент есть возможность поддержать меня через Яндекс Деньги:
И PayPal. Спасибо! Все собранные средства будут пущены на развитие сайта. Поддержка проекта является подарком владельцу сайта.
- Сразу логинимся на проблемный сервер под администратором, чтобы не вводить всякий раз имя и пароль. Запускаем Regedit.
- Запускаем поиск (CTRL+F) и ищем второй из GUIDов в описании ошибки, т.е. APPID. В данном случае это «{9CA88EE3-ACB7-47C8-AFC4-AB702511C276}».
- Первый результат поиска должен быть в ключе HKEY_CLASSES_ROOTAppID. Наступаем на найденный GUID в левой панели и щелкаем правой кнопкой, выбираем Разрешения, а затем кнопку Дополнительно.
- В верхней части дополнительных параметров указан текущий владелец TrustedInstaller. Нажимаем рядом с ним ссылку Изменить.
- Нам нужно сделать владельцем локальную группу Администраторы. Затем кнопки Дополнительно, Поиск и выбираем в результатах поиска Администраторы.
- Ставим флажок «Заменить владельца подконтейнеров и объектов», кнопка ОК.
- После смены владельца мы можем изменять разрешения. В окне Разрешения на вкладке Безопасность даем для СИСТЕМА и Администраторы разрешение на полный доступ. ОК.
- Далее смотрим для нашего ключа HKEY_CLASSES_ROOTAppID{9CA88EE3-ACB7-47C8-AFC4-AB702511C276} значение параметра «(По умолчанию)» = «RuntimeBroker«.
Открываем редактор реестра Windows. Переходим в ветку
HKEY_CLASSES_ROOTAppIDRuntimeBroker.exe
щелкаем по нему правым кликом и выбираем свойства.
Даем права для группы администраторы (Полный доступ)
Если не даст вам поставить, то вам нужно заменить владельца Trustinstaller на себя или группу администраторы. Как только дали права, идем опять в компоненты DCOM и выставляем права, как описывал выше.
10. Перезагружаем сервер, проверяем логи, по сути ошибку 10016 параметры разрешений для конкретного приложения не дают разрешения Локально Активация для приложения COM-сервера с CLSID {D63B10C5-BB46-4990-A94F-E40B9D520160} и APPID {9CA88EE3-ACB7-47C8-AFC4-AB702511C276} вы не должны больше увидеть.
В Windows 10 Anniversary Updat данная ошибка 10016 решается аналогично, так, что глюк тянется уже лет 5
Ответы (8)
1. Откройте “Редактор реестра” и перейдите к разделу
HKEY_CLASSES_ROOTAppID.
2. Найдите подраздел , соответствующий AppID из вашего сообщения об
ошибке, то есть .
3. Щелкните на нем правой кнопкой, выберите “Разрешения” и “Дополнительно”.
4. Если владельцем является “Trustedinstaller”, то напротив “Владелец”, нажмите
“Изменить”, не обращайте внимание на не соответствующий AppID в
заголовке окна “Дополнительные параметры безопасности” на моем снимке
5. В поле “Введите имена выбираемых объектов” введите “Администраторы”
(предполагаю, что ваша учетная запись входит в группу “Администраторы”) и
нажмите “Проверить имена”, затем нажмите “OK”.
6. В окне “Дополнительные параметры безопасности” нажмите “Применить” и
“OK”, чтобы закрыть окно.
7. Теперь щелкните правой кнопкой мыши на разделе реестра
, выберите “Разрешения”, в
списке “Группы и пользователи” выделите “Администраторы” и поставьте отметку “Полный доступ”, нажмите “Применить” и “OK”.
8. Откройте диалог “Выполнить” и введите dcomcnfg.
9. В окне “Службы компонентов” выберите последовательно “Компьютер” →
Как исправить ошибку 10016 через удаление ключей из ветки OLe
Данный метод подразумевает удаление нескольких ключей реестра, которые отвечают за проверку прав на COM объекты. Нас будет интересовать ветка реестра:
HKEY_LOCAL_MACHINESOFTWAREMicrosoftOle
Ole — эта ветка управляют параметрами запуска по умолчанию и разрешениями доступа, а также возможностями безопасности на уровне вызовов для приложений на основе COM, которые не вызывают CoInitializeSecurity. Только администраторы, создатель объекта и система имеют полный доступ к этой части реестра. Все остальные пользователи имеют доступ только для чтения.
Перед тем, как вы будите вносить изменения я вам советую на всякий случай сделать резервную копию реестра или ветки.
Щелкаем по контейнеру Ole правым кликом и из контекстного меню выберите пункт Экспорт.
Задаем имя экспортируемого ключа. В случае проблем вы всегда сможете его импортировать и вернуть все к исходному состоянию.
Теперь, чтобы исправить ошибку 10016 в Windows 10 или как у меня в Windows Server 2012 R2 или выше, вам необходимо удалить четыре ключа:
- DefaultAccessPermission — Определяет список разрешений доступа по умолчанию для компьютера. Устанавливает список контроля доступа (ACL) участников, которые могут получить доступ к классам, для которых нет настройки AccessPermission . Этот ACL используется только приложениями, которые не вызывают CoInitializeSecurity и не имеют значения AccessPermission под своим ключом AppID. Среда выполнения COM на сервере проверяет ACL, описываемый этим значением, при олицетворении вызывающей стороны, которая пытается подключиться к объекту, и ее успех определяет, разрешен или запрещен доступ. Если проверка доступа не пройдена, соединение с объектом будет запрещено. Если это именованное значение не существует, только серверу участника и локальной системе разрешается вызывать сервер. По умолчанию это значение не содержит записей. Только принципал сервера и система могут вызывать сервер. Это значение обеспечивает простой уровень централизованного администрирования доступа по умолчанию к подключенным объектам на компьютере.
- DefaultLaunchPermission — Определяет список запуска по умолчанию для компьютера. Определяет список контроля доступа (ACL) участников, которые могут запускать классы, которые не указывают свой собственный ACL через значение реестра LaunchPermission. Права доступа по умолчанию следующие: Администраторы: разрешить запуск, СИСТЕМА: разрешить запуск, ИНТЕРАКТИВНО: разрешить запуск. Если значение LaunchPermission установлено для сервера, оно имеет приоритет над значением DefaultLaunchPermission . После получения локального или удаленного запроса на запуск сервера, у которого ключ AppID не имеет собственного значения LaunchPermission, проверяется ACL, описанный этим значением, при олицетворении клиента, и его успех разрешает или запрещает запуск кода класса.Это значение обеспечивает простой уровень централизованного администрирования запуска по умолчанию для доступа к другим незарегистрированным классам на компьютере. Например, администратор может использовать инструмент DCOMCNFG для настройки системы, чтобы разрешить доступ только для чтения для опытных пользователей. Поэтому OLE будет ограничивать запросы на запуск кода класса членами группы «Опытные пользователи». Впоследствии администратор может настроить разрешения на запуск для отдельных классов, чтобы предоставить возможность запуска кода класса другим группам или отдельным пользователям по мере необходимости.
- MachineAccessRestriction — Устанавливает политику ограничения на уровне компьютера для доступа к компоненту. Принципалы, которым здесь не предоставлены разрешения, не могут получить их, даже если разрешения предоставляются значением реестра DefaultAccessPermission или функцией CoInitializeSecurity. По умолчанию члены группы «Все» могут получать разрешения на локальный и удаленный доступ, а анонимные пользователи могут получать разрешения на локальный доступ.
- MachineLaunchRestriction — Устанавливает политику ограничения на уровне компьютера для запуска и активации компонента. Принципалы, которым здесь не предоставлены разрешения, не могут получить их, даже если разрешения предоставляются значением реестра DefaultAccessPermission или функцией CoInitializeSecurity. По умолчанию администраторы могут получать разрешения на локальный и удаленный запуск и активацию, а члены группы «Все» могут получать разрешения на локальную активацию и запуск.
Подробнее о данной ветке можно почитать по адресу https://docs.microsoft.com/en-us/windows/win32/com/hkey-local-machine-software-microsoft-ole
теперь находим все эти ключи, щелкаем по ним правым кликом мыши и удаляем со спокойной душей, далее я вам советую перезагрузить вашу систему. В подавляющем количестве случаев ошибка с кодом 10016 у вас больше не появится.
Что такое DistributedCOM?
Прежде всего, что такое DistributedCOM и почему он показывает ошибку?
Распределенная компонентная объектная модель (DCOM) является неотъемлемым аспектом сетевого взаимодействия на компьютерах Windows. Это запатентованная технология Microsoft, которая срабатывает каждый раз, когда приложение подключается к Интернету. Традиционный COM может получить доступ только к информации на той же машине, тогда как DCOM может получить доступ к данным на удаленных серверах.
Например, многие веб-сайты и службы используют сценарии для доступа к удаленному серверу. Когда ваша система делает запрос с использованием сценария или иным образом, DCOM направляет запрос конкретному объекту сценария. Учитывая, как часто современные приложения используют сетевое соединение и наше общее использование компьютеров, вы можете увидеть, как часто DCOM используется.
Ошибка DCOM обычно возникает, когда приложение или служба пытается использовать DCOM, но не имеет надлежащих разрешений. В большинстве случаев ошибки DCOM не влияют на вашу систему, за исключением засорения вашего Event Viewer. Поскольку большинство пользователей Windows 10 не проверяют Event Viewer регулярно, об ошибках DCOM не стоит беспокоиться. Тем не менее, безошибочная система лучше, чем альтернатива.
Имея это в виду, вот один простой метод для исправления ошибки DCOM 10016, и еще одно исправление.
Отредактируйте реестр Windows, чтобы исправить ошибку DCOM 10016
Первый порт захода — это реестр Windows. Простая настройка реестра иногда может сразу исправить ошибку DCOM 10016.
Перед редактированием реестра рекомендую сделать резервную копию.
Введите регистрацию в строке поиска в меню «Пуск» и выберите «Лучшее совпадение». Перейдите в « Файл» → «Экспорт» , установите для параметра «Экспорт диапазона» значение «Все», затем сохраните реестр Windows в удобном месте. Следующее исправление не повредит ваш компьютер, но лучше всего сделать резервную копию для восстановления в случае непредвиденной ошибки.
Теперь давайте попробуем исправить.
- Введите регистрацию в строке поиска в меню «Пуск» и выберите «Лучшее соответствие».
- Перейдите к HKEY_LOCAL_MACHINESOFTWAREMicrosoftOle. Вы можете скопировать и вставить адрес в адресную строку редактора реестра.
- Удалите следующие четыре раздела реестра:
- Закройте редактор реестра Windows, затем перезагрузите систему.
Ваша система должна оставаться без ошибок DCOM 10016 с этого момента.
Исправление ошибки 10016 через PowerShell
Если вам не удалось изменить запуск службы для системы, то можно все поправить и избавиться от сообщений «APPID {9CA88EE3-ACB7-47C8-AFC4-AB702511C276} пользователю NT AUTHORITYСИСТЕМА с ИД безопасности (S-1-5-18) и адресом LocalHost (с использованием LRPC), выполняемого в контейнере приложения Недоступно с ИД безопасности (Недоступно)» с помощью скрипта PowerShell. Открываем ссылку с Microsoft
https://gallery.technet.microsoft.com/Grant-Revoke-Get-DCOM-22da5b96
Или во тут
DCOMPermissions.psm1
Скачиваем тут сценарий DCOMPermissions.psm1
Кладем данный модуль в нужную вам папку. Далее вы открываете консоль PowerShell и переходите в месторасположение данного модуля, после чего его нужно импортировать:
Import-Module .DCOMPermissions.psm1 Grant-DCOMPermission -ApplicationID «{9CA88EE3-ACB7-47C8-AFC4-AB702511C276}» -Account «SYSTEM» -Type Launch -Permissions LocalLaunch,LocalActivation -OverrideConfigurationPermissions
Если ошибок не вышло, то значит все успешно применено, перезагрузка не потребуется.
Далее вы можете посмотреть примененные разрешения:
Get-DCOMPermission -ApplicationID «{9CA88EE3-ACB7-47C8-AFC4-AB702511C276}» -Type Launch
Вы увидите права у системы, у нее будет SID S-1-5-10.
На этом у меня все, мы успешно устранили ошибку DCOM 10016. Я должен подчеркнуть, что ошибка DCOM 10016 вряд ли повлияет на производительность вашей системы. В очень старые времена, когда Microsoft впервые представила «Distributed» в компонентной объектной модели, были уязвимости. Однако эти уязвимости были исправлены, и DCOM теперь безопасен. С вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org.
Подведение итогов
Даже ошибки, не влияющие на возможность эксплуатации компьютера, являются важным сигналом для пользователя, игнорировать который недопустимо в силу опасности перерастания незначительной неполадки в более критические для ПК. Незначительные неполадки значительно проще исправить, чем накапливать их, тем более, что они могут перерасти в более крупные.
Что касается ошибки 10016 DistributedCOM, то её устранение не занимает много времени и не требует реализации трудоёмких задач: выполнив манипуляции по описанной инструкции, можно за несколько минут устранить неполадку.