Обновлено 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.
DCOM server errors are common and they usually get fixed in the registry
by Milan Stanojevic
Milan has been enthusiastic about technology ever since his childhood days, and this led him to take interest in all PC-related technologies. He’s a PC enthusiast and he… read more
Updated on October 28, 2022
Reviewed by
Vlad Turiceanu
Passionate about technology, Windows, and everything that has a power button, he spent most of his time developing new skills and learning more about the tech world. Coming… read more
- The DistributedCOM error 10016 indicates a program is trying to access the DCOM server without having the necessary permissions to do so.
- This problem is very common, and it doesn’t go away even after an upgrade.
- The issue can be fixed by deleting some keys in the registry as shown below.
XINSTALL BY CLICKING THE DOWNLOAD FILE
This software will repair common computer errors, protect you from file loss, malware, hardware failure and optimize your PC for maximum performance. Fix PC issues and remove viruses now in 3 easy steps:
- Download Restoro PC Repair Tool that comes with Patented Technologies (patent available here).
- Click Start Scan to find Windows issues that could be causing PC problems.
- Click Repair All to fix issues affecting your computer’s security and performance
- Restoro has been downloaded by 0 readers this month.
You might have encountered the notorious DistributedCOM 10016 error on Windows 10.
It is a known error, it has been around since the Windows 8 era and now it is even affecting Windows 11 users.
Although the error is not known to cause any serious damage to your operating system, it might be annoying to deal with it all the time.
Unfortunately, the error does not seem to resolve even after an upgrade. It arises due to the lack of user permissions when an application tries to start the DCOM server.
It is delivered to the user in the form of a system error, along with a message having an APPID and CLSID. It’s just because both of them are unique for every app and they are required to allow application-specific permissions.
Moreover, users have reported multiple DCOM server-related errors. The most common ones are the following and note that you may fix them by using the solutions below:
- DistributedCOM 10016 unavailable sid – You may also get around this problem by altering the permissions on DCOM components in order to prevent this error from being logged.
- DistributedCOM 10016 freeze – This problem has been around since the early versions of Windows, but it has also been reported in Windows 10.
- DistributedCOM 10016 crash – In most cases, these problems occur in the background and do not in any way impair the experience that you, as a user, have.
- DistributedCOM warning – There are a few registry keys that are present in your registry that are known to create issues, despite the fact that they belong to a sub-category of the Microsoft registry itself.
- Event ID 10016 game crash – The computer will start up with a limited set of drivers and apps if a clean boot is performed; allowing the user to verify whether or not a background program is the source of the problem.
- 10016 error – In case you don’t have a backup of your registry, check out how to restore the registry without backup in Windows 10.
Please have a look at our solutions below that can help you remove the Windows 10 and 11 DistributedCOM 10016.
Is DistributedCOM 10016 error in Event Viewer serious?
Because these events are not intended to have any negative impact on the operation of the system, it is acceptable to disregard them. Therefore, no, this error is not a serious one and unless you are a professional or intend to fix it, you can leave it aside.
Without further ado, let’s jump right into the list of methods that you can use to fix DistributedCOM 10016. Follow along!
- What causes the DistributedCOM 10016 error?
- Is DistributedCOM 10016 error in Event Viewer serious?
- How do I fix DistributedCOM error 10016?
- 1. Delete the Registry keys
- 2. Use third-party software to fix this error
- 3. Enable sufficient permissions
- How do I fix the DistributedCOM 10016 error in Windows 11?
The fastest way to fix it is by tweaking the Registry. If you are not comfortable doing that, you can use a third-party automated tool that can fix any corrupted files.
Alternatively, you can also modify the permissions to try and fix the DistributedCOM 10016 error.
1. Delete the Registry keys
NOTE
It is recommended that you should save a copy of your registry values before performing any changes. The solution will only work if you are logged in as an administrator or have enabled administrative.
1. Press the Windows key + R to launch the Run console.
2. Type regedit in the Run dialog box and press Enter or click OK. The Registry Editor will open.
3. Navigate to the following section in the Registry:HKEY_LOCAL_MACHINESOFTWAREMicrosoftOle
4. Delete the following keys: DefaultAccessPermission, DefaultLaunchPermission, MachineAccessRestriction, and MachineLaunchRestriction.
5. Finally, you can save the changes by restarting your PC.
The recommended way to fix the DistributedCOM error 10016 is to make a few changes to your Registry. The default permissions will be written for the system if you delete the above-mentioned four keys from your registry.
Hence those apps that require access to the DCOM Server will eventually get access as a result.
2. Use third-party software to fix this error
A lot of Windows errors are pretty hard to pinpoint and the DistributedCOM 10016 error is definitely one of them.
As you can see, we have some excellent solutions here but if editing the Registry is not your thing, you can try using a dedicated solution that will fix the problem automatically.
The solution recommended below can deal with any Windows 10 errors, including BSoD and DLL problems so give it a shot.
3. Enable sufficient permissions
- Press the Windows key + R to start the Run app.
- Type regedit and press Enter or click OK.
- Navigate to the following section in the registry:
HKEY_CLASSES_ROOTCLSID
- Expand it and spot the CLSID folder that has the same CLSID you got in the error.
- Right-click and select that folder.
- You will be able to see the owner at the top of the window. You need to modify the owner to the Administrators group.
- Now you have to select Replace all child object permission entries that are available at the bottom of the owner window.
- You will see a Windows Security warning, now click the OK and Yes buttons respectively.
- Click the Add button, type Everyone in the available field and click the OK button in the previous permissions window.
- You will see a list of users at the top of the main permissions Window. Now select Everyone under the user’s list and select allow to give Full Control to the user at the bottom.
- Click OK to apply full control and save the changes.
- Next, you have to expand the following folder:
HKEY_LOCAL_MACHINESoftwareClassesAppID
- Select the folder having the APPID similar to the error message and right-click it.
- Repeat steps 5 to 10 to allow sufficient permissions to the respective app.
- A registry key will be visible that is going to have a similar name to that of the service causing the error.
- Click the Start button, type control panel, and click the app from the results.
- Navigate to the top right corner to enable the icons view.
- Next, you need to navigate to Administrative Tools and select Component Services.
- Go to Computer and choose My Computer.
- Right-click on the issue-causing service, and click Properties.
- Select the Security tab.
- If you have correctly followed all the previous steps to set permissions in the registry, you can select Customize on the Launch and Activation Permissions, Access Permissions, and Configuration Permissions categories.
- Click Edit on the Launch and Activation Permissions. (Click Remove if you receive the following warning one or more permissions entries attached has an unrecognized type)
- Now find System under the list of users. Click the Add button if you are not able to locate it, type System and hit the OK button.
- You will now be able to select System under the user’s list in the current window. Look for Local Launch and Local Activation and select Allow.
- Click OK to save the changes and repeat Step 18 for Access Permissions and Configuration Permissions as well.
Finally, you will find some other ClSID and AppID values. Repeat the following steps for all of those values that have been listed in the event logs. The changes will take effect after you restart your system at the end.
Although the third solution seems to be a long and hectic one, it is only recommended for those users who are not able to resolve the error through the previous methods.
- Event ID 7000: How to fix this Service control manager error
- EventID 10016 error in Windows 10/11 [FULL FIX]
- Fix: Event ID 1000 application error on Windows 10/11
How do I fix the DistributedCOM 10016 error in Windows 11?
Although it’s more advanced than Windows 10, the new OS is still very similar in its core, and needless to say, it inherited a lot of the old OSes bugs, including the DistributedCOM 10016 error.
However, this will also help you solve the problem in Windows 11 by using all the above solutions outlined for Windows 10.
The Registry Editor and the Component Services apps are identical in Windows 11 so it’s not going to be a problem to access them and follow the steps above.
The only difference is how you launch the apps and in Windows 11, you have the dedicated magnifying glass icon on the taskbar.
Most of the users have been able to resolve the issue through all of them. Hence you would be able to get rid of the Windows 10 & 11 DistributedCOM 10016 error in no time if you correctly follow each step.
Because the error is common enough and it affects a lot of Windows users, Microsoft has an advanced guide on how to deal with this problem. You can check it out if you’re interested in advanced solutions and in-depth explanation of the causes and the problem.
Since this is an issue connected to rights and permissions, you might be interested in how to change the permissions to access or modify a file.
Leave us a note if you managed to fix the problem using our solutions. Also, feel free to share with us if you have any quick workaround for the error.
В этой заметке я покажу, как исправить ошибку 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 должна исчезнуть.
Возникновение ошибки DistributedCOM с кодом события Event ID 10016 означает, что приложение пыталось запустить сервер DCOM, но в текущей учетной записи пользователя нет требуемых разрешений для этого. Ошибка известна еще с Windows 7, однако не решается при обновлении системы до Windows 8.1 и 10.
Эта системная ошибка, в сообщении которой содержаться CLSID и APPID, и в большинстве случаев совершенно безвредная, но ее постоянное присутствие может раздражать.
Но прежде чем приступить к устранению неполадок, проверьте состояние блока питания ПК. Если используется разгон процессора, видеокарты или ОЗУ, уменьшите установленные параметры или вообще отключите. Кроме того, убедитесь, что драйверы видеокарты обновлены по последней версии.
Добавление полных разрешений приложению, вызывающего ошибку
Значения CLSID и APPID уникальны для каждого приложения. С их помощью можно идентифицировать приложение, вызывающего ошибку DistributedCOM 10016.
Когда определите, какое приложение вызывает проблемы, все, что нужно сделать, это предоставить ему достаточные разрешения. Для этого выполните следующие шаги.
Откройте Редактор реестра командой regedit, запущенной из окна Win + R.
Перейдите в раздел HKEY_CLASSES_ROOT, затем в CLSID.
Найдите папку с идентификатором CLSID, который указан в сообщении об ошибке DCOM.
Теперь щелкните правой кнопкой мыши на нем и выберите «Разрешения», затем нажмите на кнопку «Дополнительно».
Перейдите на вкладку «Владелец» и измените его на группу «Администраторы». Отметьте флажком опцию «Заменить владельца подконтейнеров и объектов». Примените изменения нажатием на «ОК».
Вернувшись в окно разрешений, кликните на кнопку «Добавить». Нажмите Дополнительно – Поиск и выберите учетную запись «Все». Снова в окне разрешений выберите «Все» из списка пользователей и предоставьте ей полный доступ в столбце «Разрешить». Примените изменения на «ОК».
После этого в редакторе реестра перейдите по пути:
HKEY_LOCAL_MACHINE – Software – Classes – AppID.
Перейдите в раздел, содержащий тот же идентификатор приложения, что указан в сообщении об ошибке. Щелкните по нему правой кнопкой мыши и выберите «Разрешения», затем нажмите на «Дополнительно».
Повторите указанные шаги для предоставления приложению полного доступа.
Нужно отметить, что при просмотре папок CLSID и APPID увидите раздел с именем службы, вызывающей ошибку DCOM 10016.
Затем перейдите в Панель управления командой control из окна Win + R.
Переключитесь на крупные значки и перейдите в раздел «Администрирование».
Разверните вкладку «Службы компонентов». В центральном окне разверните вкладку «Компьютеры», затем Мой компьютер.
Теперь найдите службу, вызывающую ошибку, щелкните ее правой кнопкой мыши и выберите «Свойства». Откройте вкладку Безопасность.
Если разрешения были правильно установлены в реестре, появится возможность изменить параметры для всех трех категорий (на запуск и активацию, доступ и изменение настроек). Если какой-либо из них выделен серым цветом, повторите шаги по предоставлению полного доступа.
После выбора настроек для трех категорий, выберите «Изменить» для разрешения на запуск и активацию. Если отобразится предупреждение о том, что одна или несколько прикрепленных записей доступа имеют неправильный тип, щелкните кнопку «Удалить». Это означает, что разрешения в реестре были установлены на значение, отличное чем «По умолчанию», которое требуется для завершения исправления.
В новом окне найдите учетную запись «Система» в списке пользователей. Если она не существует, щелкните на «Добавить». Введите «Система» и кликните на «ОК».
Теперь выберите запись «Система», установите флажок в столбце разрешить рядом к локальным запуском и активацией.
Также можете увидеть локальный доступ вместо этого, поэтому просто убедитесь, что есть проверка для этого элемента в столбце разрешить. Для сохранения нажмите на «ОК».
Повторите шаги для остальных категорий – разрешения доступа и изменения настроек.
Затем повторите все шаги для других значений ClSID и AppID, перечисленный в журнале событий.
После завершения перезагрузите компьютер. Попытайтесь запустить программу, которую ранее не удавалось из-за ошибки DistributedCOM с Event ID 10016.
Удаление разделов реестра
Ошибку DCOM также может вызвать конфликт между разделами. Для ее решения попробуйте их удалить. Но перед этим сделайте резервную копию реестра.
Откройте Редактор реестра с помощью поисковой системы Winsows, предоставив ему доступ администратора.
Перейдите в раздел HKEY_LOCAL_MACHINE –SOFTWARE – Microsoft – Ole.
Теперь удалите разделы:
- DefaultAccessPermission;
- DefaultLaunchPermission;
- MachineAccessRestriction;
- MachineLaunchRestriction.
Сохраните изменения и перезагрузите систему. После перезагрузки в реестр будут записаны значения по умолчанию, что должно устранить ошибку DistributedCOM с кодом события 10016.
На странице поддержки Microsoft сказано, что ошибка 10016 DistributedCOM не относится к числу критических, поэтому пользователи могут игнорировать её появление. Увидели сообщение о сбое, закрыли его и работаете дальше. Однако иногда ошибка всё-таки говорит о проблемах в работе системы, которые требуют устранения. Так что давайте разбираться, из-за чего она появляется и как от неё избавиться.
Что это за ошибка
Ошибка DistributedCOM появляется, когда отдельные процессы не получают доступ к компонентам DCOM из-за отсутствия разрешений. Чаще всего она появляется после аварийного завершения работы, однако могут быть и другие ситуации: например, неудачные удалённые сеансы или сбои серверных функций операционной системы при взаимодействии с локальной сетью или виртуальными машинами.
Сообщение об ошибке DistributedCOM может появляться и при попытке выполнить самые простые действия: запустить игру или программу, перейти на страницу в браузере. Если эти ситуации повторяются часто, то игнорировать сбой уже не выйдет — окно с предупреждением сильно раздражает. Если вы столкнулись с такой ситуацией, давайте попробуем её устранить. Естественно, для выполнения всех описанных ниже действий нужна учётная запись с правами администратора.
Создание точки восстановления
Прежде чем приступать к исправлению ошибки, создадим точку восстановления. Это позволит чувствовать себя в безопасности и при необходимости вернуться к исходному состоянию:
- Кликаем правой кнопкой по меню «Пуск» и выбираем пункт «Система».
- Переходим по ссылке «Дополнительные параметры системы».
Сначала нужно убедиться, что функция восстановления системы включена
- Открываем вкладку «Защита системы».
- Если защита на системном диске выключена, нажимаем кнопку «Настроить» и включаем её.
- На вкладке «Защита системы» внизу есть кнопка «Создать». Нажимаем на неё, чтобы сохранить текущее состояние.
Создадим точку восстановления, чтобы ничего не потерять
- Задаём имя для точки, чтобы потом было проще её найти.
- Дожидаемся завершения процесса, закрываем все окна и возвращаемся к решению основной задачи — исправлению ошибки.
Можно обойтись без создания точки восстановления, но если в процессе устранения неполадок что-то пойдёт не так, то вам очень пригодится сохранённое исходное состояние.
Устранение сбоя
Прежде всего, необходимо узнать, какой именно процесс не может получить доступ к компонентам и заставляет систему выводить сообщение об ошибке. Сделать это поможет журнал событий Windows 10.
- Открываем встроенный поиск Windows.
- Набираем запрос «Просмотр событий» и запускаем одноимённое классическое приложение.
В журнале Windows 10 хранится информация обо всех значимых событиях
- В списке событий находим последнюю ошибку с источником DistributedCOM.
- В поле ниже появятся подробности. Сначала нужно выделить и скопировать AppID — всё, что находится внутри фигурных кнопок.
Идентификатор приложений поможет найти виновника появления ошибки
Мы знаем идентификатор приложения, из-за которого появилась ошибка. Теперь нужно дать ему доступ к компонентам DCOM, изменив список разрешений. Для этого мы будем использовать редактор реестра:
- Нажимаем Win+R, вводим команду regedit и запускаем реестр.
- Выделяем ветку «Компьютер».
- Раскрываем меню «Правка» и выбираем опцию «Найти».
- Вставляем значение AppID вместе с фигурными скобками. Отмечаем опцию «Имена разделов» и нажимаем «Найти далее».
В редакторе реестра есть встроенный поиск, который поможет найти нужный каталог
- Кликаем правой кнопкой по найденной папке. Выбираем пункт «Разрешения».
- Нажимаем на кнопку «Дополнительно».
- В строке «Владелец» щёлкаем по ссылке «Изменить».
Нам нужно изменить владельца, чтобы получить полный доступ к каталогу
- Нажимаем «Дополнительно».
- Переходим к поиску.
- В результатах выбираем группу «Администраторы» и нажимаем «ОК».
Владельцами каталога должны стать учетные записи с правами администратора
- В следующем окне тоже нажимаем «ОК» для сохранения конфигурации.
- Ещё раз нажимаем «Ок».
- На вкладке «Безопасность» в поле «Группы или пользователи» выбираем значение «Администраторы». Предоставляем им полный доступ и нажимаем «Ок» для сохранения конфигурации.
Теперь администраторы имеют полный доступ к каталогу
Эти действия нужно повторить для второго значения, которое доступно в подробностях ошибки в журнале событий. Оно называется CLSID. Порядок такой же: меняем владельца, предоставляем доступ, сохраняем новую конфигурацию.
Следующий шаг — настройка компонентов системы:
- Через встроенный поиск находим приложение «Службы компонентов».
- Раскрываем ветку «Службы компонентов» — «Компьютеры» — «Мой компьютер» — «Настройка DCOM».
- В правой части окна находим параметр RuntimeBroker. Их может быть два, нужный мы определим по его свойствам — код приложения в нем должен соответствовать AppID, который мы обнаружили в самом начале инструкции.
Обнаружили компонент, который вызывает ошибку DistributedCOM
- Переходим на вкладку «Безопасность» и в поле «Разрешения на запуск и активацию» нажимаем «Изменить».
- Удаляем нераспознаваемые записи.
- В новом окне нажимаем «Добавить».
Нам нужно добавить новых пользователей и дать им разрешения
- Кликаем по кнопке «Дополнительно».
- Нажимаем на «Поиск», выделяем Local Service и щёлкаем «ОК».
- Ещё раз нажимаем «ОК», чтобы закрыть окно.
Находим Local Service в списке пользователей
- Выбираем в списке Local Service.
- В столбце «Разрешить» отмечаем опции «Локальный запуск» и «Локальная активация».
Устанавливаем все необходимые разрешения для запуска компонента
- Аналогичным образом настраиваем разрешения для пользователя с именем «Система» (повторяем пункты 6-11).
- В свойствах RuntimeBroker нажимаем «ОК» для сохранения конфигурации.
- Перезагружаем систему.
Инструкция получилась сложной, но на практике сделать всё ещё труднее, да и к тому же это требует достаточно много времени. Поэтому если ошибка DistributedCOM не влияет на работоспособность системы, то лучше последовать совету поддержки Microsoft и проигнорировать её.
Post Views: 1 000