Как да поправите грешка на DCOM Event ID 10016 в Windows 10

В днешната публикация ще идентифицираме причината и след това ще предоставим възможните решения на проблема с грешката на DCOM (DistributedCOM) Event ID 10016 , която може да се появи в инструмента за преглед на събития на Windows в хода на нормалните операции на Windows 10 .

Моделът на  разпределения компонент на обекта (DCOM)(Distributed Component Object Model (DCOM)) е неразделна част от мрежовата комуникация на компютрите с Windows . Това е собствена технология на Microsoft , която влиза в действие всеки път, когато приложение прави връзка с интернет. Традиционният COM има достъп само до информация на същата машина, докато DCOM може да има достъп до данни на отдалечени сървъри.

Например, много уебсайтове и услуги използват скриптове за достъп до отдалечен сървър. Когато вашата система направи заявка с помощта на скрипт или по друг начин, DCOM препраща заявката към конкретния обект на скрипт. Като се има предвид колко често съвременните приложения използват мрежова връзка и общото ни използване на компютрите, можете да видите колко често се използва DCOM .

Грешка с идентификатор на събитие DCOM 10016

Грешка с идентификатор на събитие DCOM 10016

Може да забележите следното събитие 10016, влязло в регистрационните файлове на системните събития на компютър, който работи с Windows 10 , Windows Server 2016 , Windows Server 2019, Windows Server , версия 1903 или Windows Server 1909 :

Source: Microsoft-Windows-DistributedCOM
Event ID: 10016
Description: The application-specific permission settings do not grant Local Activation permission for the COM Server application with CLSID
{D63B10C5-BB46-4990-A94F-E40B9D520160}
and APPID
{9CA88EE3-ACB7-47C8-AFC4-AB702511C276}
to the user NT AUTHORITY\SYSTEM SID (S-1-5-18) 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.

Обикновено ще срещнете горната грешка, регистрирана в инструмента за преглед на събития. Заслужава да се отбележи обаче, че има вариации на грешката 10016 с идентификатор на събитие . (Event ID 10016)Независимо(Nevertheless) от това , процедурата за смекчаване на грешката е по същество същата.

DCOM грешка обикновено възниква , когато приложение или услуга се опитват да използват DCOM , но нямат подходящите разрешения. През повечето време DCOM грешките няма да повлияят на вашата система, освен да запушат вашия Event Viewer . Тези 10016 събития се записват, когато компоненти на Microsoft се опитат да осъществят достъп до компоненти на DCOM без необходимите разрешения. В този случай това се очаква и по замисъл.

DCOM грешките не са причина за притеснение – можете спокойно да ги игнорирате. Въпреки това, има процедури, които можете да следвате, за да разрешите грешката с идентификатор на събитието 10016(ID 10016) , когато се появи.

Как да разрешите грешка с идентификатор на DCOM събитие 10016(ID 10016)

За да разреши този проблем, Microsoft предлага създаване на XML филтър за потискане на грешката с идентификатор на събитие DCOM 10016 .(ID 10016)

Ето как:

  • Отворете Event Viewer ( Натиснете клавиша Windows(Press Windows) + R. В диалоговия прозорец Run въведете (Run)eventvwr и натиснете Enter).
  • Щракнете върху Windows Logs > System .
  • Щракнете върху  Филтриране на текущия журнал (Filter current log ) под екрана за действие(Action) .
  • Изберете раздела XML и отметнете опцията Редактиране на заявката ръчно .(Edit query manually)
  • Копирайте и поставете следния XML текст в диалоговия прозорец за филтър.
<QueryList>
  <Query Id="0" Path="System">
    <Select Path="System">*</Select>
    <Suppress Path="System">
      *[System[(EventID=10016)]]
      and
      *[EventData[
        (
          Data[@Name='param4'] and Data='{D63B10C5-BB46-4990-A94F-E40B9D520160}' and
          Data[@Name='param5'] and Data='{9CA88EE3-ACB7-47C8-AFC4-AB702511C276}' and
          Data[@Name='param8'] and Data='S-1-5-18'
        ) 
        or
        (
          Data[@Name='param4'] and Data='{260EB9DE-5CBE-4BFF-A99A-3710AF55BF1E}' and
          Data[@Name='param5'] and Data='{260EB9DE-5CBE-4BFF-A99A-3710AF55BF1E}'
        ) 
        or
        (
          Data[@Name='param4'] and Data='{C2F03A33-21F5-47FA-B4BB-156362A2F239}' and
          Data[@Name='param5'] and Data='{316CDED5-E4AE-4B15-9113-7055D84DCC97}' and
          Data[@Name='param8'] and Data='S-1-5-19'
        )
        or
        (
          Data[@Name='param4'] and Data='{6B3B8D23-FA8D-40B9-8DBD-B950333E2C52}' and
          Data[@Name='param5'] and Data='{4839DDB7-58C2-48F5-8283-E1D1807D0D7D}' and
          Data[@Name='param8'] and Data='S-1-5-19'
        ) 
      ]]
    </Suppress>
  </Query>
</QueryList>

В тази заявка  param4  съответства на CLSID на приложението на COM сървъра(COM Server)param5  съответства на APPID, а  param8  съответства на контекста на защитата SID , като всички те са записани в 10016 регистрационни файлове за събития.

  • Щракнете върху OK .

Записите за грешка в DCOM с идентификатор на събитие 10016 (DCOM)вече(Event ID 10016) са скрити от изглед.

Като алтернатива можете да коригирате проблема с разрешенията на DCOM(DCOM Permissions) , като използвате редактора на системния регистър(Registry Editor) и инструмента за конфигурация на DCom(DCom Config) .

Ето как:

Поправката включва настройка на системния регистър – така че като предпазна мярка се препоръчва да архивирате системния регистър(back up the registry) или да създадете точка за възстановяване на системата .

За да предотвратите регистрирането на събитията, следвайте тези стъпки, за да предоставите разрешение на компонентите на DCOM , които имат специфични CLSID(CLSIDs) и APPID(APPIDs) .

Първо, ще трябва да разберете кой процес или услуга е свързан с CLASS ID , посочен в грешката. За да направите това, продължете и копирайте CLSID , посочен в описанието на събитието. В този случай това е {D63B10C5-BB46-4990-A94F-E40B9D520160} . Уверете се, че сте копирали и двете фигурни скоби.

Сега стартирайте редактора на системния регистър . Когато отворите редактора на системния регистър, щракнете върху  Редактиране(Edit)  и след това  Намери(Find) . Продължете и поставете CLSID в полето за търсене и натиснете Enter .

Регистърът сега ще започне търсене. След известно време трябва да получите резултат под ключа HK_CLASSES_ROOT\CLSID  . От дясната страна той трябва да има два ключа и този по  подразбиране(Default) трябва да изброява името на услугата. В този случай трябва да бъде RuntimeBroker .

След като идентифицирате процеса, можете да продължите по следния начин, за да коригирате грешката.

  • И все пак в редактора на системния регистър отидете до следния AppID ключ, свързан с RuntimeBroker:

HKEY_CLASSES_ROOT\AppID\{9CA88EE3-ACB7-47C8-AFC4-AB702511C276}

По подразбиране TrustedInstaller притежава този ключ на системния регистър и неговите подключове. Задайте администратора(Set Administrator) като собственик на ключа и неговите подключове. Вижте  как да поемете собствеността върху ключовете на системния регистър(how to take ownership of registry keys)  за повече информация.

  • След като зададете администратори(Administrators)  като собственик, присвоете  групата администратори(Administrators)  и  СИСТЕМНИЯ(SYSTEM)  акаунт имат разрешение за пълен контрол(Full Control) за ключа и подключовете.
  • Излезте от редактора на системния регистър.

След това стартирайте инструмента за конфигуриране на DCOM(DCOM Configuration) (натиснете клавиша Windows + R. В диалоговия прозорец Run въведете (Run)dcomcnfg.exe  и натиснете Enter.

  • Щракнете върху Компонентни услуги(Component Services) > Компютри(Computers) > Моят(My Comput) компютър > DCOM Config .
  • Щракнете с десния бутон(Right-click) върху приложението, което съответства на AppID , записан в регистъра на събитията, и след това изберете Свойства(Properties) .

Името на приложението в този пример е RuntimeBroker , което идентифицирахме по-рано. Ако инструментът DCom Config изброява два записа на RuntimeBroker . За да намерите правилния, щракнете с десния бутон върху елемент и щракнете върху Свойства и съпоставете идентификатора на приложението(App ID) с този в системния регистър.

  • Изберете раздела Защита(Security) .
  • Под Разрешения за стартиране и активиране(Launch and Activation Permissions) изберете Персонализиране(Customize) и щракнете върху Редактиране(Edit) .

Ако бутонът Редактиране е неактивен в страницата със (Edit)свойства(Properties) на приложението RuntimeBroker в DCOM Config , ще трябва да проверите разрешенията на ключа в системния регистър на AppID .

  • Под Имена(Group or user names) на група или потребители изберете Добавяне(Add) .
  • Въведете(Enter) името на групата или потребителя, което е записано в регистъра на събитията. Например акаунтът, записан в дневника, може да бъде NT AUTHORITY\NETWORK SERVICE , NT AUTHORITY\SYSTEM или някаква друга група или акаунт.
  • Щракнете върху OK .
  • Задайте разрешение за локално активиране(Assign Local Activation) за този потребител или група, които сте добавили, и завършете процеса.

Тази процедура предотвратява грешки в регистъра на събития. Идентификатор(Event ID) на събитие : 10016, свързани с разрешенията на DCOM .

Забележка(Note) : Microsoft не препоръчва метода за промяна на разрешенията на DCOM компоненти, за да предотврати регистрирането на тази грешка, тъй като тези грешки не влияят неблагоприятно на функционалността и промяната на разрешенията може да има нежелани странични ефекти.

Hope this helps!



About the author

Аз съм инженер по windows, ios, pdf, грешки, джаджи с над 10 години опит. Работил съм върху много висококачествени Windows приложения и рамки като OneDrive за бизнеса, Office 365 и др. Неотдавнашната ми работа включваше разработването на pdf четеца за платформата на windows и работата по изясняване на съобщенията за грешки за потребителите. Освен това участвам в разработването на платформата ios от няколко години и съм много запознат както с нейните характеристики, така и с странностите.



Related posts