Исправление ошибки идентификатора события 10016: сервер DCOM не имеет разрешений на локальную активацию для PCNAME \ Username SID

Недавно на моем ПК с Windows 8.1, из ниоткуда, я начал получать ошибки в журнале событий после установки обновлений во вторник исправлений. Ошибка была связана с распределенным COM (DCOM):

Параметры разрешений для конкретного приложения не предоставляют разрешение локальной активации для приложения COM-сервера с CLSID {9E175B6D-F52A-11D8-B9A5-505054503030} и APPID {9E175B9C-F52A-11D8-B9A5-505054503030} пользователю PCNAME \ Username SID. S-1-5-21-81864976-3388411891-1937036257-1001 с адреса LocalHost (с использованием LRPC), запущенного в контейнере приложения Недоступный SID (S-1-15-2-1430448594-2639229838-973813799-439329657-1197984847-4069167804- 1277922394). Это разрешение безопасности можно изменить с помощью инструмента администрирования служб компонентов.

Такая сложная ошибка может вызвать разочарование у неопытных пользователей. Они не знакомы с этой терминологией. Кроме того, устранение ошибок DCOM является проблемой, поэтому я сначала проигнорировал это, но журнал событий был заполнен ими, поскольку это происходило каждый час или около того. Решив исправить это, я решил разобраться.

Для тех из вас, кто не знает, COM — это старая объектно-ориентированная технология межпроцессного взаимодействия Microsoft. COM-сервер — это исполняемый файл (EXE или DLL), который реализует набор COM-объектов. Многие компоненты Windows реализованы как объекты COM и следуют стандартным правилам COM для взаимодействия друг с другом. COM-серверы зарегистрированы в реестре и имеют идентификатор класса (CLSID) и APPID.

Первым шагом к устранению этой ошибки было выяснение, к какому компоненту DCOM относятся CLSID и APPID. Итак, запустите редактор реестра и перейдите к этому ключу реестра:

HKEY_CLASSES_ROOT \ CLSID \ {9E175B6D-F52A-11D8-B9A5-505054503030}

Этот ключ реестра также указывает на тот же идентификатор приложения, что и сообщение об ошибке: {9E175B9C-F52A-11D8-B9A5-505054503030}. Итак, следующий переход к

HKCR \ APPID \ {9E175B9C-F52A-11D8-B9A5-505054503030}

Это говорит мне, что это компонент WSearch (COM-объект Windows Search).

Следующим шагом было назначить этому CLSID / AppID правильные разрешения локальной активации, которые он хотел, — моего идентификатора безопасности пользователя (SID) и SID приложения. Для этого Windows предоставляет инструмент Component Services, который позволяет пользователю изменять разрешения на запуск и активацию, права доступа и разрешения конфигурации на COM-серверах.

Откройте «Администрирование» -> «Службы компонентов». Разверните Службы компонентов -> Компьютер -> Мой компьютер -> Конфигурация DCOM. Найдите WSearch и щелкните его правой кнопкой мыши -> Свойства. Перейдите во вкладку «Безопасность».

Сделав это, я увидел, что все было выделено серым цветом (отключено) на вкладке «Безопасность» для этого COM-объекта, поэтому мне сначала нужно было предоставить моей учетной записи полные разрешения в реестре. Я снова открыл Regedit и перешел к тому же ключу

HKEY_CLASSES_ROOT \ AppID \ {9E175B9C-F52A-11D8-B9A5-505054503030}

и изменил разрешения. Сначала вы должны стать владельцем (установите флажок «Заменить владельца подконтейнеров и объектов»), а затем добавьте свое имя пользователя и предоставьте ему полный доступ. После этого вы можете снова сменить владельца на исходную учетную запись (NT Service \ TrustedInstaller).

С приложением RegOwnershipEx от Winaero очень легко стать владельцем и предоставить права администратора.

Теперь я повторно открыл службы компонентов (Dcomcnfg.exe) и перешел в свойства WSearch, вкладку «Безопасность» и теперь смог редактировать разрешения безопасности для разрешений на запуск и активацию, которые показаны следующим образом:

разрешения на запуск и активацию

Через группу безопасности «Все» моя учетная запись пользователя уже имеет разрешения на локальную активацию, но также показаны 3 других идентификатора безопасности, которые не являются известными учетными записями или группами пользователей, как указывает их значок. Это идентификаторы безопасности приложений и относятся к приложениям. В ошибке журнала событий также говорилось: «… выполняется в контейнере приложения Недоступный SID (S-1-15-2-1430448594-2639229838-973813799-439329657-1197984847-4069167804-1277922394).

Теперь пользовательский интерфейс средства выбора объектов Windows, похоже, не позволяет добавлять SID приложений для объектов участников безопасности. Итак, после нажатия кнопки «Добавить» я щелкнул «Дополнительно …», а затем «Найти сейчас». Это перечислит все объекты. Но большинство из них были SID аккаунтов. Я заметил «ВСЕ ПАКЕТЫ ПРИЛОЖЕНИЙ», которые, как следует из названия, вероятно, представляют собой группу для всех пакетов приложений, поэтому я выбрал ее. Нажмите везде ОК, чтобы добавить его, а затем предоставьте ему разрешения на локальный запуск и локальную активацию.

все-прикладные пакеты

Теперь, после нажатия кнопки ОК и закрытия пользовательского интерфейса служб компонентов, ошибка исчезла из журнала событий, что означает, что COM-компонент WSearch теперь имеет правильные разрешения на локальный запуск и активацию.

Я написал эту статью как общее руководство, чтобы помочь другим аналогичным образом устранять ошибки DCOM в журнале событий. Меня все еще беспокоит, почему в Windows до сих пор нет инструмента для простого восстановления правильных разрешений для COM-объектов в случае их сбоя.

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

Ваш адрес email не будет опубликован.