Ошибка 10016 windows 10 что это такое

Ошибка DistributedCOM 10016 в Windows 10 как исправить

Иногда при запуске компьютера в журнале событий Windows 10 можно увидеть ошибку с кодом события 10016, вызванную службой DistributedCOM (DCOM). Этот компонент используется практически во всех версиях ОС Windows, поэтому ошибка может возникнуть на любом компьютере. В большинстве случаев она никак не нарушает работу ПК, но может мешать тем, что вызывает появление уведомлений при каждом старте системы. Что это за ошибка DistributedCOM 10016 в работе Виндовс 10, каковы причины её появления, и как ее исправить? Расскажу об этом в данной статье.

Почему появляется ошибка DistributedCOM 10016?

Найти ошибку DistributedCOM 10016 можно в службе «Просмотр событий», которая открывается через раздел «Администрирование» панели управления, утилитой «Выполнить» или командой eventvwr в командной строке. Служба отслеживает все, что происходит с системой и установленными приложениями, а также планирует выполнение задач в будущем.

Ошибка DistributedCOM 10016 в Windows 10 — это системное событие, поэтому находится она в пункте «Система» раздела «Журналы Windows» в меню слева. Справа расположен список событий, в котором и можно найти ошибку — она помечена красной иконкой с восклицательным знаком. В верхнем окне справа отмечается основная информация о событии — точное время, код и источник. В нижнем окне служба показывает всю информацию об ошибке, которой достаточно для ее решения, но разобраться в этих данных может быть сложно для начинающего пользователя.

Об ошибке DistributedCOM 10016 журнал говорит, что причиной ее является невозможность запуска конкретного приложения службой DCOM из-за отсутствия у системы разрешения на это. Ниже указан код приложения (ADDID) в шестнадцатеричной системе. Какой программе соответствует этот код, в данном случае не важно, ее название не потребуется для исправления ошибки 10016.

Еще ниже указано, какому пользователю нужно разрешение на запуск приложения. Как правило, при возникновении ошибки DCOM 10016 это пользователь SYSTEM. Таким образом, в том, как исправить ошибку DistributedCOM 10016 в Windows 10, нет особых сложностей — нужно найти соответствующее приложение и предоставить системе права на его запуск.

Как исправить ошибку DCOM 10016?

Сначала надо дать себе права на изменение разрешений службы DistributedCOM.

Делается это через реестр:

  1. Откройте редактор реестра, нажав Win+R и набрав regedit в окне «Выполнить».
  2. Найдите пункт «Найти» в разделе «Правка» меню редактора.
  3. Скопируйте 16-ричный код проблемного приложения из сообщения об ошибке DistributedCOM 10016 в поле поиска.
  4. Нажмите на него правой кнопкой мыши и выберите «Разрешения», затем — «Дополнительно».
  5. Смените владельца на группу «Администраторы».
  6. Вернитесь в меню «Разрешения», выберите группу «Администраторы» и поставьте галку напротив пункта «Полный доступ» в окне разрешений.

Теперь у вас есть право дать службе DCOM разрешение на использование проблемного приложения. Делается это через утилиту «Службы компонентов», которая открывается командой dmconfig в окне «Выполнить».

Читайте также:  Aoc all in one drivers windows

После открытия утилиты порядок действий таков:

  1. Последовательно раскройте разделы «Службы компонентов», «Компьютеры», «Мой компьютер» в меню слева и выберите пункт «Настройка DCOM».
  2. В списке справа найдите проблемное приложение по его 16-ричному коду.
  3. Кликните по нему правой кнопкой и выберите «Свойства».
  4. Перейдите на вкладку «Безопасность» и нажмите «Изменить» в блоке «Разрешения на запуск и активацию».
  5. Выберите пользователя SYSTEM или СИСТЕМА и разрешите ему локальную активацию приложения. Если этого пользователя нет, добавьте его, нажав «Добавить».
  6. Примените изменения и закройте все окна.

После перезагрузки компьютера новые опции активируются. Так как исправить ошибку DistributedCOM 10016 на Windows 10 достаточно один раз, в дальнейшем она перестанет появляться.

Ошибка 10016 windows 10 что это такое

Доброго времени суток, уважаемые читатели, сегодня решаем ошибку 10016 параметры разрешений для конкретного приложения не дают разрешения Локально Активация для приложения COM-сервера с CLSID и APPID <9ca88ee3-acb7-47c8-afc4-ab702511c276>в Windows server 2012 R2.

Ошибка 10016 в windows 10 и Windows Server

На сервере Windows Server 2012 R2 постоянно возникает ошибка 10016.

Параметры разрешений для конкретного приложения не дают разрешения Локально Активация для приложения COM-сервера с CLSID

и APPID
<9ca88ee3-acb7-47c8-afc4-ab702511c276>или <316cded5-e4ae-4b15-9113-7055d84dcc97>или <4839ddb7-58c2-48f5-8283-e1d1807d0d7d>
пользователю NT AUTHORITY\СИСТЕМА с ИД безопасности (S-1-5-18) и адресом LocalHost (с использованием LRPC), выполняемого в контейнере приложения Недоступно с ИД безопасности (Недоступно). Это разрешение безопасности можно изменить с помощью средства администрирования служб компонентов.

Данная ошибка выскакивает, когда какая-то из утилит не может обратиться к DCOM объекту, чаще всего, это связано с недостаточностью разрешений. Был реализован шаблон кодирования, где код сначала пытается получить доступ к компонентам DCOM с одним набором параметров. Если первая попытка не удалась, она пытается снова с другим набором параметров. Причина, по которой он не пропускает первую попытку, заключается в том, что существуют сценарии, в которых он может быть успешным. В этих сценариях это предпочтительнее. Если вы не в курсе, что такое COM объекты и DCOM, то если по простому, это концепция для создания программного обеспечения на основе взаимодействующих компонентов объекта, каждый из которых может использоваться во многих программах одновременно. На основе COM были созданы ActiveX, DCOM, COM+, DirectX, .Net.

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

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

  • Назначаем недостающие права на ветку с GUID номером <9ca88ee3-acb7-47c8-afc4-ab702511c276>или другим, зависит от вашей ситуации с кодом ошибки 10016
  • Удаление некоторых ключей реестра
  • Использование скрипта PowerShell

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

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


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


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

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

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

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

10. Перезагружаем сервер, проверяем логи, по сути ошибку 10016 параметры разрешений для конкретного приложения не дают разрешения Локально Активация для приложения COM-сервера с CLSID и APPID <9ca88ee3-acb7-47c8-afc4-ab702511c276>вы не должны больше увидеть.

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

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

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. По умолчанию администраторы могут получать разрешения на локальный и удаленный запуск и активацию, а члены группы «Все» могут получать разрешения на локальную активацию и запуск.

теперь находим все эти ключи, щелкаем по ним правым кликом мыши и удаляем со спокойной душей, далее я вам советую перезагрузить вашу систему. В подавляющем количестве случаев ошибка с кодом 10016 у вас больше не появится.

Исправление ошибки 10016 через PowerShell

Если вам не удалось изменить запуск службы для системы, то можно все поправить и избавиться от сообщений «APPID
<9ca88ee3-acb7-47c8-afc4-ab702511c276>
пользователю NT AUTHORITY\СИСТЕМА с ИД безопасности (S-1-5-18) и адресом LocalHost (с использованием LRPC), выполняемого в контейнере приложения Недоступно с ИД безопасности (Недоступно)» с помощью скрипта PowerShell. Открываем ссылку с Microsoft

Скачиваем тут сценарий DCOMPermissions.psm1

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

Grant-DCOMPermission -ApplicationID «<9ca88ee3-acb7-47c8-afc4-ab702511c276>» -Account «SYSTEM» -Type Launch -Permissions LocalLaunch,LocalActivation -OverrideConfigurationPermissions

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

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

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

Оцените статью