Ошибка 10016 параметры разрешений для конкретного приложения не дают разрешения Локально Активация для приложения COM-сервера с CLSID {D63B10C5-BB46-4990-A94F-E40B9D520160} и APPID {9CA88EE3-ACB7-47C8-AFC4-AB702511C276} в Windows server 2012 R2

Обновлено 19.08.2021

Ошибка 10016

Доброго времени суток, уважаемые читатели, сегодня решаем ошибку 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}

{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), выполняемого в контейнере приложения Недоступно с ИД безопасности (Недоступно). Это разрешение безопасности можно изменить с помощью средства администрирования служб компонентов.

Событие 10016

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 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.

{316CDED5-E4AE-4B15-9113-7055D84DCC97}

Данная ошибка выскакивает, когда какая-то из утилит не может обратиться к 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

Методы решения ошибки 10016

Сначала нужно обновить Windows через центр обновления, и если не поможет, то делаем по очереди предложенные решения:

  • Назначаем недостающие права на ветку с GUID номером {9CA88EE3-ACB7-47C8-AFC4-AB702511C276} или другим, зависит от вашей ситуации с кодом ошибки 10016
  • Удаление некоторых ключей реестра
  • Использование скрипта PowerShell

Как исправить ошибку 10016 через назначение прав в реестре

  1. Сразу логинимся на проблемный сервер под администратором, чтобы не вводить всякий раз имя и пароль. Запускаем Regedit.
  2. Запускаем поиск (CTRL+F) и ищем второй из GUIDов в описании ошибки, т.е. APPID. В данном случае это «{9CA88EE3-ACB7-47C8-AFC4-AB702511C276}».Ошибка 10016
  3. Первый результат поиска должен быть в ключе HKEY_CLASSES_ROOT\AppID\. Наступаем на найденный GUID в левой панели и щелкаем правой кнопкой, выбираем Разрешения, а затем кнопку Дополнительно.Меняем права для устранения ошибки 10016
  4. В верхней части дополнительных параметров указан текущий владелец TrustedInstaller. Нажимаем рядом с ним ссылку Изменить.Изменение владельца
  5. Нам нужно сделать владельцем локальную группу Администраторы. Затем кнопки Дополнительно, Поиск и выбираем в результатах поиска Администраторы. код ошибки 10016
  6. Ставим флажок «Заменить владельца подконтейнеров и объектов», кнопка ОК.Заменить владельца подконтейнеров
  7. После смены владельца мы можем изменять разрешения. В окне Разрешения на вкладке Безопасность даем для СИСТЕМА и Администраторы разрешение на полный доступ. ОК.
  8. Далее смотрим для нашего ключа HKEY_CLASSES_ROOT\AppID\{9CA88EE3-ACB7-47C8-AFC4-AB702511C276} значение параметра «(По умолчанию)» = «RuntimeBroker«.

Ошибка 10016 в windows-1
8. В диспетчере серверов в правом верхнем углу меню Средства -> Службы компонентов. Открываем Компьютеры –> Мой компьютер –> Настройка DCOM. Правый клик по строке из п.7 RuntimeBroker, Свойства.

Ошибка 10016 в windows-2
9. На вкладке Безопасность. В разделе Разрешения на запуск и активацию кнопка Изменить. Для группы СИСТЕМА разрешаем Локальный запуск и Локальная активация. ОК. Если вам runtimebroker не дает отредактировать настройки, то вам нужно дать права на него в реестре Windows

Не дает отредактировать службу dcom при ошибке 10016

Открываем редактор реестра Windows. Переходим в ветку

HKEY_CLASSES_ROOT\AppID\RuntimeBroker.exe

щелкаем по нему правым кликом и выбираем свойства.

runtimebroker exe windows 10-2

Даем права для группы администраторы (Полный доступ)

runtimebroker exe windows 10-3

Если не даст вам поставить, то вам нужно заменить владельца Trustinstaller на себя или группу администраторы. Как только дали права, идем опять в компоненты DCOM и выставляем права, как описывал выше.

runtimebroker exe windows 10-4

10. Перезагружаем сервер, проверяем логи, по сути ошибку 10016 параметры разрешений для конкретного приложения не дают разрешения Локально Активация для приложения COM-сервера с CLSID {D63B10C5-BB46-4990-A94F-E40B9D520160} и APPID {9CA88EE3-ACB7-47C8-AFC4-AB702511C276} вы не должны больше увидеть.

В Windows 10 Anniversary Updat данная ошибка 10016 решается аналогично, так, что глюк тянется уже лет 5

Как исправить ошибку 10016 через удаление ключей из ветки OLe

Данный метод подразумевает удаление нескольких ключей реестра, которые отвечают за проверку прав на COM объекты. Нас будет интересовать ветка реестра:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole

Ole - эта ветка управляют параметрами запуска по умолчанию и разрешениями доступа, а также возможностями безопасности на уровне вызовов для приложений на основе COM, которые не вызывают CoInitializeSecurity. Только администраторы, создатель объекта и система имеют полный доступ к этой части реестра. Все остальные пользователи имеют доступ только для чтения.

Перед тем, как вы будите вносить изменения я вам советую на всякий случай сделать резервную копию реестра или ветки.

Щелкаем по контейнеру Ole правым кликом и из контекстного меню выберите пункт Экспорт.

Экспорт ветки реестра Ole

Задаем имя экспортируемого ключа. В случае проблем вы всегда сможете его импортировать и вернуть все к исходному состоянию.

Выгрузка ветки реестра при ошибке 10016

Теперь, чтобы исправить ошибку 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

Исправление ошибки 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

Исправление 10016 через powershell

Кладем данный модуль в нужную вам папку. Далее вы открываете консоль PowerShell и переходите в месторасположение данного модуля, после чего его нужно импортировать:

Import-Module .\DCOMPermissions.psm1

Grant-DCOMPermission -ApplicationID "{9CA88EE3-ACB7-47C8-AFC4-AB702511C276}" -Account "SYSTEM" -Type Launch -Permissions LocalLaunch,LocalActivation -OverrideConfigurationPermissions

Если ошибок не вышло, то значит все успешно применено, перезагрузка не потребуется.

Исправление ошибки dcom в powershell

Далее вы можете посмотреть примененные разрешения:

Get-DCOMPermission -ApplicationID "{9CA88EE3-ACB7-47C8-AFC4-AB702511C276}" -Type Launch

Вы увидите права у системы, у нее будет SID S-1-5-10.

ошибка 10016

На этом у меня все, мы успешно устранили ошибку DCOM 10016.  Я должен подчеркнуть, что ошибка DCOM 10016 вряд ли повлияет на производительность вашей системы. В очень старые времена, когда Microsoft впервые представила «Distributed» в компонентной объектной модели, были уязвимости. Однако эти уязвимости были исправлены, и DCOM теперь безопасен. С вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org.

Автор - Сёмин Иван

50 Responses to Ошибка 10016 параметры разрешений для конкретного приложения не дают разрешения Локально Активация для приложения COM-сервера с CLSID {D63B10C5-BB46-4990-A94F-E40B9D520160} и APPID {9CA88EE3-ACB7-47C8-AFC4-AB702511C276} в Windows server 2012 R2

  1. паВЕЛ321:

    КАК ИСПРАВИТЬ ОШИПКУ Параметры разрешений по умолчанию для компьютера не дают разрешения Локально Активация для приложения COM-сервера с CLSID

  2. Иван Семин:

    Читайте внимательно последовательность действий

  3. Michal4ch:

    Спасибо
    мне помогло на Windows 10

  4. Иван Семин:

    Рад, что получилось

  5. Сергей:

    Аналогично, Windows 10 — вылечено. Спасибо!

  6. Иван Семин:

    Рад, что пригодилось, а то все никто не комментирует))

  7. Дмитрий:

    А я вот в стал на 9 пункте — просто у меня эти галочки все равно не ставятся, кнопка изменить не активна. Все на 10 раз уже проверил и ….. все верно, но где то видимо чего я недопонимаю. А вот еще абсолютно не понятна фраза «Перезагрузить локальный сервер».

  8. Юлия:

    Вот у меня тоже загвоздка в пунктах с 8 по 10. Я простой пользователь и немного не понятно как тот же диспетчер открыть.

  9. Иван Семин:

    Добрый день для какой ос вы решаете данную ошибку?

  10. Юлия:

    Если я? то Windows 10

  11. Иван Семин:

    Я писал про 2012, но накидал вам скриншоты где и что найти

  12. Юлия:

    не пропускает 9 пункт, не дает делать изменения, хоть и все сделала и для администратора все открыто.

  13. Ранжан:

    У кого кнопка «Изменить» неактивна, переключитесь в этом окне с «По умолчанию» на «Настроить»

  14. Михаил:

    Не работает данный способ. Windows 10 Pro Anniversary Update со всеми обновлениями. 10 раз по этой инструкции правил реестр, RuntimeBroker, а ошибка как была, так и есть.
    Есть идеи?

  15. Сергей:

    8 пункт не выполняется после всех изменений с реестром, права получены, владелец сменен
    но изменить все равно нельзя, все серое…

  16. Михаил:

    Сергей, тоже было всё серое но там есть и третья ветка в реестре с этим ID 9CA88EE3-ACB7-47C8-AFC4-AB702511C276 на него тоже надо получить права (аналогично предыдущим), и тогда откроется доступ к RuntimeBroker.

    когда открылся доступ жму на свойства RuntimeBroker в службах компонентов, жму безопасность > разрешения на запуск > изменить
    вывалилась табличка:
    «Одна или несколько записей разрешений, определенных для Значения реестра, имеют нераспознаваемый или специфический для приложения тип (ответный вызов) и не могут отображаться.»
    Нажал удалить, добавил пользователя СИСТЕМА и дал права.

    По аналогии ошибка с 4EDD6725-7003-4120-A0BB-BBDEBA704FB7
    LockAppHost Out of Proc Server for Lock Apps
    {C08B030B-E91C-479D-BEFD-02DDA7FF1BCF}

    вроде все сделал, мне не помогло(
    win10 Anniversary Update… нет слов

  17. Юрий:

    Аналогично. После выполнения ВСЕХ рекомендаций ошибка не исчезла.
    Ось — Windows 10 со всеми апдейтами…

  18. Гена:

    Где логинимся?Чушь какая то.

  19. Олег:

    В ветке HKEY_CLASSES_ROOT\AppID\ у меня нет RuntimeBroker.exe

  20. Алексей:

    Помогло, спасибо. Всё манипулировалось от администратора.

  21. Александр:

    Спасибо.Помогло.(WinSer2012R2)

  22. Олег Б:

    А у меня вот в Службах компонентов 2 RuntimeBroker’a. В одном изменения доступны, а в другом нет. Win 10 Pro. Это нормально? Просто у меня данная ошибка крайне редко проявляется и не могу проверить, исчезла или нет) И, кстати, в ветке HKEY_CLASSES_ROOT\AppID\ у меня тоже нет RuntimeBroker.exe Есть такой в Application, но там все разрешения как надо стоят, после проделанных процедур. Просто вот думаю, неизменяемый РантаймБрокер будет мешать работать изменяемому , как надо, или нет?

  23. Владимир:

    Помогло ведь на Win 10 x64. Вот спасибо.

  24. Владимир:

    Не заморачивайтесь на RuntimeBroker.exe. В моём случае это был LocalServiceHost. Остальное выполнял по указанному алгоритму. И всё стало замечательно. Единственное что я после манипуляций со Службами компонентов вернул разрешения на раздел в реестре как было, т.е Администраторы — Только чтение, Владелец — NT Service\Trustedinstaller, как советуют на
    _ttps://answers.microsoft.com/ru-ru/windows/forum/windows_10-performance/параметр/6c577953-693e-4227-a5db-65734b3d7169

  25. Иван Семин:

    Очень рад.

  26. Димка:

    9 пункт не могу пройти, всё серое ни добавить пользователя не изменить. Win10 x64

  27. Димка:

    И в настройках DCOM у меня ТРИ строки RuntimeBroker!!? В двух из них все манипуляции сделаны, ошибка на месте, а вот в третьем никак.

  28. Сергей:

    Не получается ничего, бесит уже эта 10 винда, никаких проблем в 7 не было, а тут сидишь себе сидишь в ютубе и комп с того ни с сего перезагружается(

  29. Андрей:

    В редакторе реестра нету RuntimeBroker.exe.Что мне делать в таком случае ,помогите?

  30. Иван Семин:

    Попробуйте создать

  31. Александр:

    У кого в RuntimeBroker недоступны галочки, в реестре нужно дать на него разрешения как указано в статье, но искать в реестре нужно не RuntimeBroker, а код этого приложения который можно увидеть на вкладке «Общие» в свойствах RuntimeBroker (у меня это 9CA88EE3-ACB7-47c8-AFC4-AB702511C276).

  32. Павел:

    Спасибо, ваши решения всегда помогают.

  33. прохожий:

    Ошибка 10016 в Windows, решаем за минуту
    +++++
    шутка — ЗАЧОТ!!

  34. Артём Б.:

    здравствуйте , п.9 HKEY_CLASSES_ROOT\AppID\RuntimeBroker.exe нет папки runtimebroker.exe нигде , что делать ? помогите пожалуйста(

  35. Валерий:

    Спасибо, похоже починл падение Veeam Backup на сервере Windows Server 2016!

  36. Рен:

    На вкладке Безопасность. В разделе Разрешения на запуск и активацию кнопка Изменить. Для группы СИСТЕМА разрешаем Локальный запуск и Локальная активация.
    У МЕНЯ НЕТ ТАМ система ?
    Как быть?

  37. Иван Семин:

    Используйте скрипт

  38. иван:

    у меня нет начиная с 4п я не могу изменить, постоянно ошибка!!

  39. Сергей:

    Не нашел скрипта DCOMPermissions.psm1 и как его запустить на компе?

  40. Иван Семин:

    Воспользуйтесь поиском на нужно странице CTRL+F, я проверил все есть

  41. Сергей:

    Пытался установить прогу. Пишет: Ошибка приложения: Код исключения 0х800706b5 адрес 0xefbf4fd9

    П.1 Комп домашний. Сервера нет. (или что-то не понимаю). Запустил Regedit
    П.2 (CTRL+F) нашел второй из GUIDов в описании ошибки, т.е. APPID.
    П.3 нашел GUID
    П.4 и 5 Заменил владельца TrustedInstaller на Администраторы
    П.6 заменил флажок «Заменить владельца подконтейнеров и объектов»
    П.7 для СИСТЕМА и Администраторы разрешение на полный доступ дал.
    П.8 параметр «(По умолчанию)» = «RuntimeBroker«. Отсутствовал. Создал. Ключи в папке появились сами.
    В диспетчере серверов в правом верхнем углу меню Средства -> Службы компонентов. Открываем Компьютеры –> Мой компьютер –> Настройка DCOM. Правый клик по строке из п.7 RuntimeBroker, Свойства. Кликнул.
    П.9 Невозможно добавить пользователей «Администраторы». Не подсвечивается.
    Открыл редактор реестра Windows. Перешел в ветку
    HKEY_CLASSES_ROOT\AppID\RuntimeBroker.exe Администраторы полный доступ имеют.

    По прежнему Невозможно добавить пользователей «Администраторы». Не подсвечивается.

    П.10 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole

    сделал резервную копию ветки.

    Вырезать ключи не рискнул. Попробовал слияние выполнить, пишет мало прав. Переустанавливать не хочется.
    Скачать скрипт DCOMPermissions.psm1 Скачал. Кладем данный модуль в нужную вам папку. Положил.
    Далее вы открываете консоль PowerShell Открыл.
    и переходите в месторасположение данного модуля, после чего его нужно импортировать: Как это сделать?
    Жалко, что нельзя загрузить скриншоты, было бы понятнее. Можно Вам на почту? Есть нужда.

  42. Иван Семин:

    Команда описана для импорта: Import-Module .\DCOMPermissions.psm1

  43. Сергей:

    Попытался импортировать. Комп написал:Import-Module: The specified module ‘.\DCOM Permissions.psm1’ was not loaded because no valid module file was found in any module directory.
    Импорт-Модуль: Указанный модуль ‘.\DCOM Permissions.psm1’ не был загружен, поскольку ни в одном каталоге модуля не был найден допустимый файл модуля. Хотя модуль скачан и лежит в папке F:\WORK\Ремонт

  44. Иван Семин:

    Вы точно перешли в каталог с файлом?

  45. Vito:

    Hi to every one, the contents present at this weeb site are actuzlly awesome for pople knowledge, well, keep up tthe nice work fellows.

  46. Иван Семин:

    Many thanks for the rating. Hope I could be of some help to you.

  47. Владимир:

    Попытался решить проблему вторым способом — через удаление четырех ключей в Реестре. Но оказалось, что ключа DefaultAccessPermission у меня в Реестре нет.
    Windows 10 LTSC версия 1809.

    Удалил три оставшихся ключа, но это не решило проблемы.
    Что можно сделать?

  48. Александр:

    Огромное Вам спасибо от сотрудника Ставропольской слубы тех. поддержки! Отличная статья! Очень помогли!

  49. Владимир:

    с помощью PS ошибку победил.
    связана ли она с проблемой TSfarm ? когда память не отображается у хоста в балансировке ?
    у меня на всех хостах перестала отображаться в ферме и не могу запретить новые входы для новых пользователях на всех терминалах.
    по сети все доступно и 135 порт через телнет проваливается.
    что еще может быть ? так не хочу по новой пересобирать ферму терминалов ((
    если что шлюз не пользую, так как не публикую наружу.

  50. Павел К:

    Как же надоела уже эта ошибка, она тянется еще со времен Windows ?.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *