Параметры разрешений по умолчанию для компьютера не дают разрешения локально активация
В сегодняшнем посте мы определим причину, а затем предложим возможные решения проблемы DCOM (DistributedCOM) идентификатор события 10016 ошибка, которая может появиться в средстве просмотра событий Windows при нормальной работе Windows 10.
В Распределенная объектная модель компонентов (DCOM) является неотъемлемым аспектом сетевого взаимодействия на компьютерах Windows. Это запатентованная технология Microsoft, которая срабатывает каждый раз, когда приложение подключается к Интернету. Традиционный COM может получить доступ к информации только на одном компьютере, тогда как DCOM может получить доступ к данным на удаленных серверах.
Например, многие веб-сайты и службы используют сценарии, которые обращаются к удаленному серверу. Когда ваша система делает запрос с помощью сценария или иным образом, DCOM перенаправляет запрос конкретному объекту сценария. Учитывая, насколько часто современные приложения используют сетевое соединение и наше общее использование компьютеров, вы можете увидеть, как часто используется DCOM.
Методы решения ошибки 10016
Сначала нужно обновить Windows через центр обновления, и если не поможет, то делаем по очереди предложенные решения:
- Назначаем недостающие права на ветку с GUID номером или другим, зависит от вашей ситуации с кодом ошибки 10016
- Удаление некоторых ключей реестра
- Использование скрипта PowerShell
- Сразу логинимся на проблемный сервер под администратором, чтобы не вводить всякий раз имя и пароль. Запускаем Regedit.
- Запускаем поиск (CTRL+F) и ищем второй из GUIDов в описании ошибки, т.е. APPID. В данном случае это «».
- Первый результат поиска должен быть в ключе HKEY_CLASSES_ROOT\AppID\. Наступаем на найденный GUID в левой панели и щелкаем правой кнопкой, выбираем Разрешения, а затем кнопку Дополнительно.
- В верхней части дополнительных параметров указан текущий владелец TrustedInstaller. Нажимаем рядом с ним ссылку Изменить.
- Нам нужно сделать владельцем локальную группу Администраторы. Затем кнопки Дополнительно, Поиск и выбираем в результатах поиска Администраторы.
- Ставим флажок «Заменить владельца подконтейнеров и объектов», кнопка ОК.
- После смены владельца мы можем изменять разрешения. В окне Разрешения на вкладке Безопасность даем для СИСТЕМА и Администраторы разрешение на полный доступ. ОК.
- Далее смотрим для нашего ключа HKEY_CLASSES_ROOT\AppID\ значение параметра «(По умолчанию)» = «RuntimeBroker«.
8. В диспетчере серверов в правом верхнем углу меню Средства -> Службы компонентов. Открываем Компьютеры –> Мой компьютер –> Настройка DCOM. Правый клик по строке из п.7 RuntimeBroker, Свойства.
9. На вкладке Безопасность. В разделе Разрешения на запуск и активацию кнопка Изменить. Для группы СИСТЕМА разрешаем Локальный запуск и Локальная активация. ОК. Если вам runtimebroker не дает отредактировать настройки, то вам нужно дать права на него в реестре Windows
щелкаем по нему правым кликом и выбираем свойства.
Даем права для группы администраторы (Полный доступ)
Если не даст вам поставить, то вам нужно заменить владельца Trustinstaller на себя или группу администраторы. Как только дали права, идем опять в компоненты DCOM и выставляем права, как описывал выше.
10. Перезагружаем сервер, проверяем логи, по сути ошибку 10016 параметры разрешений для конкретного приложения не дают разрешения Локально Активация для приложения COM-сервера с CLSID и APPID вы не должны больше увидеть.
В Windows 10 Anniversary Updat данная ошибка 10016 решается аналогично, так, что глюк тянется уже лет 5
Данный метод подразумевает удаление нескольких ключей реестра, которые отвечают за проверку прав на COM объекты. Нас будет интересовать ветка реестра:
Ole - эта ветка управляют параметрами запуска по умолчанию и разрешениями доступа, а также возможностями безопасности на уровне вызовов для приложений на основе COM, которые не вызывают CoInitializeSecurity. Только администраторы, создатель объекта и система имеют полный доступ к этой части реестра. Все остальные пользователи имеют доступ только для чтения.
Перед тем, как вы будите вносить изменения я вам советую на всякий случай сделать резервную копию реестра или ветки.
Щелкаем по контейнеру Ole правым кликом и из контекстного меню выберите пункт Экспорт.
Задаем имя экспортируемого ключа. В случае проблем вы всегда сможете его импортировать и вернуть все к исходному состоянию.
теперь находим все эти ключи, щелкаем по ним правым кликом мыши и удаляем со спокойной душей, далее я вам советую перезагрузить вашу систему. В подавляющем количестве случаев ошибка с кодом 10016 у вас больше не появится.
Как устранить ошибку DCOM event ID 10016
Чтобы решить эту проблему, Microsoft предлагает создать фильтр XML для подавления ошибки DCOM с идентификатором 10016.
- Откройте средство просмотра событий (нажмите клавиши Windows + R. В диалоговом окне «Выполнить» введите событие и нажмите Enter).
- Ckick Журналы Windows >Система.
- Нажмите Фильтровать текущий журнал под Действие панель.
- Выберите вкладку XML и установите флажок Редактировать запрос вручную вариант.
- Скопируйте и вставьте следующий текст XML в диалоговое окно фильтра.
В этом запросе param4 соответствует CLSID приложения COM-сервера, param5 соответствует APPID, а param8 соответствует SID контекста безопасности, все из которых записываются в журналы событий 10016.
Записи об ошибках DCOM с идентификатором события 10016 теперь скрыты от просмотра.
Исправление включает настройку реестра, поэтому в качестве меры предосторожности рекомендуется создать резервную копию реестра или создать точку восстановления системы.
Чтобы предотвратить регистрацию событий, выполните следующие действия, чтобы предоставить разрешения компонентам DCOM, имеющим определенные идентификаторы CLSID и APPID.
Во-первых, вам нужно выяснить, какой процесс или служба связаны с идентификатором КЛАССА, указанным в ошибке. Для этого скопируйте CLSID, указанный в описании события. В данном случае это . Обязательно скопируйте обе фигурные скобки.
Теперь запустите редактор реестра. Когда у вас открыт редактор реестра, нажмите Редактировать а потом Находить. Вставьте CLSID в поле поиска и нажмите Enter.
Реестр начнет поиск. Через некоторое время вы должны получить результат под HK_CLASSES_ROOT CLSID ключ. На правой стороне должны быть две клавиши и Дефолт следует указать название услуги. В этом случае это должно быть RuntimeBroker.
-
Тем не менее, в редакторе реестра перейдите к следующему ключу AppID, связанному с RuntimeBroker:
По умолчанию TrustedInstaller владеет этим разделом реестра и его подразделами. Установите администратора как владельца ключа и его подразделов. Узнайте, как стать владельцем ключей реестра для получения дополнительной информации.
- После установки Администраторы как владелец назначить Администраторы группа и СИСТЕМА У учетной записи есть разрешение на полный доступ к ключу и подразделам.
- Закройте редактор реестра.
Затем запустите инструмент настройки DCOM (нажмите клавиши Windows + R. В диалоговом окне «Выполнить» введите dcomcnfg.exе и нажмите Enter.
- Нажмите Компонентные услуги >Компьютеры >Мой компьютерон>Конфигурация DCOM.
- Щелкните правой кнопкой мыши приложение, соответствующее идентификатору приложения, записанному в журнале событий, и выберите «Свойства».
Имя приложения в этом примере: RuntimeBroker которые мы определили ранее. Если инструмент DCom Config перечисляет две записи RuntimeBroker. Чтобы найти нужный, щелкните элемент правой кнопкой мыши, выберите «Свойства» и сопоставьте идентификатор приложения с идентификатором в реестре.
- Выберите Безопасность таб.
- Под Разрешения на запуск и активацию, Выбрать Настроитьи щелкните Редактировать.
Если кнопка «Изменить» неактивна на странице свойств приложения RuntimeBroker в DCOM Config, вам необходимо проверить разрешения для раздела реестра AppID.
- Под Группы или имена пользователей, Выбрать Добавлять.
- Введите имя группы или пользователя, записанное в журнале событий. Например, учетная запись, записанная в журнале, может быть NT АВТОРИТЕТ СЕТЕВОЙ СЕРВИС, NT АВТОРИТЕТ СИСТЕМА, или какая-то другая группа или учетная запись.
- Нажмите Ok.
- Назначьте разрешение локальной активации для этого пользователя или группы, которую вы добавили, и завершите процесс.
Эта процедура предотвращает ошибки журнала событий. Идентификатор события: 10016, относящийся к разрешениям DCOM.
Примечание: Microsoft не рекомендует метод изменения разрешений для компонентов DCOM, чтобы предотвратить регистрацию этой ошибки в журнале, поскольку эти ошибки не влияют отрицательно на функциональность, а изменение разрешений может иметь непредвиденные побочные эффекты.
11.02.2019
itpro
Windows 10, Windows 7, Windows Server 2012 R2
комментариев 16
Проблема проявляется следующим образом: в журнале событий системы при загрузке компьютера или попытке запуска/установки приложения появляется следующая ошибка:
Log Name: Система
Source: DistributedCOM
Event ID: 10016
Level: Ошибка
User: SYSTEM
Описание: Параметры разрешений для конкретного приложения не дают разрешения Локальный Запуск для приложения COM-сервера с CLSID и APPID пользователю 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
and APPID Unavailable to the user IIS APPPOOL\appIISPool SID (S-1-5-82-3351576649-1006875745-771203599-42452693-1279824824) from address LocalHost (Using LRPC) running in the application container Unavailable SID (Unavailable). This security permission can be modified using the Component Services administrative tool.
Судя по описанию ошибки: некий пользователь (например, IIS Apppool) или система (NT AUTHORITY\система) пытается запустить некий компонент COM с помощью инфраструктуры DCOM и не может этого сделать из-за отсутствия права «Локальный Запуск» или «Локальная активация» (Local Activation Permission). В коде ошибки содержатся только коды классов COM компонента и приложения. Попробуем определить, какому именно приложению принадлежит идентификатор и предоставить права, необходимые для его запуска.
Из описания события необходимо скопировать идентификаторы CLSID и APPID. В моем случае это
(в некоторых случаях идентификатор приложения может быть не указан — APPID Unavailable).
Также обратите внимание каких разрешений не хватает (Local Activation permission) и для какой учетной записи (NT AUTHORITY\SYSTEM или IIS APPPOOL\appIISPool SID — S-1-5-82-3351576649-1006875745-771203599-42452693-1279824824).
В каждом конкретном случае идентификаторы класса, приложения, учетной записи и типа доступа может отличаться.
- Запустите редактор реестра (regedit.exe);
- Перейдите в ветку реестра, соответствующую вашему CLSID. У меня это HKEY_CLASSES_ROOT\CLSID\;
В некоторых случаях нужно смотреть также в разделе реестра [HKEY_CLASSES_ROOT\Wow6432Node\CLSID\. При удаленном подключении к реестру он будет находиться в разделе HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID.
Если вы не можете найти свой компонент в списке, вероятно у вас 64 битная версия Windows, а запускаемый компонент является 32 битным. В этом случае нужно запустить консоль DCOM командой: mmc comexp.msc /32
Если открыть консоль dcomcnfg до изменения разрешений на ветку реестра, все настройки на вкладке Security окажутся заблокированы (недоступны для изменения), несмотря на то, что вы запустили консоль от имени администратора.
Совет. Если в начальном логе ошибки вместо NT AUTHORITY\система была указана NT AUTHORITY\NETWORK SERVICE, необходимо дать права на локальный запуск и активацию для учетной записи NetworkService.
Ошибка идентификатора события DCOM 10016
Источник: Microsoft-Windows-DistributedCOM
Идентификатор события: 10016
Описание: параметры разрешений для конкретного приложения не предоставляют разрешение на локальную активацию для приложения COM-сервера с CLSID.
и APPID
пользователю NT AUTHORITY SYSTEM SID (S-1-5-18) с адреса LocalHost (с использованием LRPC), запущенного в контейнере приложения. Unavailable SID (Недоступно). Это разрешение безопасности можно изменить с помощью инструмента администрирования служб компонентов.
Обычно указанная выше ошибка регистрируется в средстве просмотра событий. Однако стоит отметить, что существуют варианты ошибки Event ID 10016. Тем не менее, процедура устранения ошибки по существу такая же.
Ошибка DCOM обычно возникает, когда приложение или служба пытается использовать DCOM, но не имеет необходимых разрешений. В большинстве случаев ошибки DCOM не влияют на вашу систему, кроме засорения средства просмотра событий. Эти 10016 событий записываются, когда компоненты Microsoft пытаются получить доступ к компонентам DCOM без необходимых разрешений. В данном случае это ожидаемо и по замыслу.
Не о чем беспокоиться об ошибках DCOM — их можно смело игнорировать. Однако существуют процедуры, которым вы можете следовать, чтобы устранить ошибку события с кодом 10016 всякий раз, когда она возникает.
Ошибка 10016 в windows 10 и Windows Server
На сервере Windows Server 2012 R2 постоянно возникает ошибка 10016.
Параметры разрешений для конкретного приложения не дают разрешения Локально Активация для приложения COM-сервера с CLSID
и APPID
или или
пользователю 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
and APPID
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.
Параметры разрешений для конкретного приложения не предоставляют локальную активацию
- Определите и подтвердите CLSID и APPID
- Измените владельца ключа CLSID из редактора реестра
- Изменить разрешение безопасности из служб компонентов
Прочтите, чтобы узнать подробности о шагах.
Теперь вам нужно найти компонент, который создает проблему. Для этого откройте редактор реестра на своем компьютере. Для этого нажмите Win + R, введите regeditи кнопку Enter. После этого перейдите по этому пути —
Затем щелкните значок Передовой кнопка.
По умолчанию этот ключ принадлежит TrustedInstaller, но вам нужно изменить владельца на администратора. Для этого нажмите кнопку Изменять кнопка в Расширенные настройки безопасности окно> напишите «Администратор»> щелкните Проверить имена кнопку> щелкните Ok кнопка.
Также вам нужно выбрать Заменить владельца подконтейнеров и объектов флажок.
После этого выберите Администраторы от Группы или имена пользователей список и отметьте Разрешить / Полный доступ флажок. Теперь сохраните ваши настройки.
После этого вам также необходимо стать владельцем APPID. Для этого перейдите по этому пути в редакторе реестра —
Вам нужно сделать то же самое, что и выше, чтобы изменить владельца этого ключа реестра.
Если у вас возникла проблема с изменением владельца ключа реестра, вы можете воспользоваться нашим бесплатным инструментом RegOwnit, который позволяет сделать это одним щелчком мыши.
Если вы выполнили эти шаги, вам нужно открыть Компонентные услуги. Вы можете найти его в поле поиска на панели задач и щелкнуть соответствующий результат. После открытия Component Services перейдите сюда —
В этом примере CLSID совпадает с этой службой компонента Immersive Shell. Вам нужно найти По умолчанию — Данные имя, полученное вами в редакторе реестра. После распознавания щелкните правой кнопкой мыши компонентную службу и выберите Характеристики. Здесь вы должны найти ID приложения или же APPID что вы можете подтвердить еще раз.
Далее перейдите к Безопасность таб. Здесь можно найти три метки, в том числе Разрешения на запуск и активацию. Щелкните соответствующий Редактировать кнопка.
После добавления выбирайте по одному и дайте Локальный запуск и Локальная активация разрешения для них обоих.
Сохраните изменения, вы больше не получите ту же проблему в средстве просмотра событий.
Независимо от того, возникла ли у вас проблема с RuntimeBroker, Immersive Shell или любым другим процессом, решение будет одинаковым для всех.
Д алеко не все случающиеся в Windows ошибки проявляют себя явно, так что пользователь может даже не подозревать о их наличии пока не откроет раздел «Система» в журнале событий Windows . Сегодня мы постараемся разобрать причины одной из таких ошибок. Встречается она довольно часто, причём во всех версиях Windows начиная с XP, имеет код 10016 и примерно следующее описание:
Параметры разрешений для конкретного приложения не дают разрешения Локально Активация для приложения COM-сервера с CLSID и APPID пользователю DESKTOP-AEM9850/компик с ИД безопасности…
Здесь приводится лишь часть описания ошибки, на деле оно может быть более объёмным и отличаться в деталях. Из описания следует, что пользователь DESKTOP-AEM9850/компик (пользователем может быть и система) пытается запустить некий COM-компонент, но не может этого сделать по причине отсутствия соответствующих прав. Что за компонент и какое именно приложение вызывает ошибку Windows прямо не указывает, всё что нам известно, это CLSID компонент и идентификатор приложения.
Задача заключается в том, чтобы определить, какому приложению принадлежит идентификатор, а затем предоставить пользователю или системе соответствующие права для его запуска. Проще всего это сделать через реестр. Откройте командой regedit редактор реестра и разверните ветку HKEY_CLASSES_ROOT/AppID . Воспользовавшись встроенным поиском, найдите в подразделе APPID приложения (в нашем примере это ) .
После того как ключ будет найден, потребуется предоставить к нему полные права доступа пользователю, имя (первая его часть) которого указывается в описании. Для этого кликаем правой кнопкой мыши по ключу, выбираем «Разрешения»
И жмём в открывшемся окошке кнопку «Дополнительно».
Как видим, в данном примере владельцем ключа является TrustedInstaller. Заменим его администратором (пользователем DESKTOP-AEM9850) .
Кликните по ссылке «Изменить».
Введите имя локального пользователя, нажмите «OK».
Установите галочку «Заменить владельца подконтейнеров и объектов» и еще раз нажмите «OK».
Теперь во второй раз откройте окошко разрешений для группы, выделите в нём администратора, коим был заменён TrustedInstaller, отметьте галочкой чекбокс «Полный доступ» и сохраните новые настройки.
Отлично, возвращаемся в редактор реестра и запоминаем значение параметра по умолчанию для найденного ранее ключа.
У нас это InstallAgent. Далее командой comexp.msc или dcomcnfg в окошке «Выполнить» открываем оснастку «Службы компонентов» и разворачиваем в меню «Компьютеры» -> «Мой компьютер» -> «Настройка DCOM» и находим компонент с именем параметра по умолчанию (InstallAgent) . Через контекстное меню вызываем его свойства.
Переключаемся на вкладку «Безопасность», в блоке «Разрешения на запуск и активацию» жмём «Изменить».
Выбираем пользователя, устанавливаем галочки в чекбоксах «Локальный запуск» и «Локальная активация» после чего сохраняем настройки и перезагружаем компьютер.
В принципе, эти действия должны устранить ошибку, если только её появление было связано с отсутствием необходимых прав доступа, однако стопроцентной гарантии, что всё будет именно так дать нельзя.
Исправление ошибки 10016 через PowerShell
Скачиваем тут сценарий DCOMPermissions.psm1
Кладем данный модуль в нужную вам папку. Далее вы открываете консоль PowerShell и переходите в месторасположение данного модуля, после чего его нужно импортировать:
Grant-DCOMPermission -ApplicationID "" -Account "SYSTEM" -Type Launch -Permissions LocalLaunch,LocalActivation -OverrideConfigurationPermissions
Если ошибок не вышло, то значит все успешно применено, перезагрузка не потребуется.
Далее вы можете посмотреть примененные разрешения:
Вы увидите права у системы, у нее будет SID S-1-5-10.
Эти 10016 событий записываются, когда компоненты Microsoft пытаются получить доступ к компонентам DCOM без необходимых разрешений. Эти события обычно можно безопасно игнорировать, потому что они не влияют отрицательно на функциональность и являются преднамеренными.
Параметры разрешений для конкретного приложения не предоставляют разрешение локальной активации для приложения COM-сервера с CLSID и APPID пользователю NT AUTHORITY LOCAL SERVICE SID (S-1-5-19) с адреса LocalHost (с использованием LRPC), запущенного в контейнере приложения. Недоступный SID (недоступен). Это разрешение безопасности можно изменить с помощью инструмента администрирования служб компонентов.
Читайте также: