В тази бележка ще покажа как да коригирам грешката c Идентификатор на събитие 10016 от източника на DistributedCOM на компютър, работещ под Windows 10 / Windows Server 2012 R2. Грешката DCOM 10016 е доста често срещана както в клиентската, така и в сървърната версия на Windows, започвайки от времето на Windows XP и е фиксирана по същия начин, независимо от версията на Windows.
Проблемът се проявява по следния начин: в системния дневник на събитията, когато компютърът се стартира или при опит да стартира / инсталира приложението, се появява следната грешка:
Име на журнала: Система
източник: DistributedCOM
Идентификационен номер на събитието: 10016
ниво: Грешка
потребител: СИСТЕМА
описание: Настройките за разрешение за специфично приложение не дават разрешение за локално стартиране за приложение на COM сървър с CLSID 1CCB96F4-B8AD-4B43-9688-B273F58E0910 и APPID AD65A69D-3831-40D7-9629-9B0B50A93843 NT AUTHORITY \ система със SID ( S-1-5-18) и LocalHost адрес (използва LRPC). Това разрешение за сигурност може да бъде променено с помощта на помощната програма за управление на компоненти..
В английските версии на Windows описанието на грешката е:
Настройките за разрешение по подразбиране на машината не дават разрешение за локално активиране за приложението на COM сървър с CLSID
000209FF-0000-0000-C000-000000000046 и APPID Не е достъпно за потребителя IIS APPPOOL \ appIISPool SID (S-1-5-82-3351576649-1006875745-771203599-42452693-1279824824) от адрес LocalHost (Използвайки LRPC), работещ в контейнерът за приложения Не е наличен SID (Недостъпно). Това разрешение за сигурност може да бъде променено с помощта на административния инструмент на Component Services.
Съдейки по описанието на грешката: определен потребител (например IIS Apppool) или система (NT AUTHORITY \ система) се опитва да стартира определен COM компонент, използвайки инфраструктурата на DCOM и не може да направи това поради липсата на право на локално стартиране или локално активиране ( Разрешение за локално активиране). Кодът за грешка съдържа само класовите кодове на COM компонента и приложението. Нека се опитаме да определим към кое приложение принадлежи идентификаторът и да предоставим необходимите права за стартирането му.
Копирайте CLSID и APPID от описанието на събитието. В моя случай е така
CLSID: 000209FF-0000-0000-C000-000000000046
ПРИЛОЖЕНИЕ: AD65A69D-3831-40D7-9629-9B0B50A93843
(в някои случаи идентификаторът на приложението може да не е посочен - APPID Не е наличен).
Също така обърнете внимание на това, какви разрешения липсват (разрешение за локално активиране) и за кой акаунт (NT ORHORITY \ SYSTEM или IIS APPPOOL \ appIISPool SID - S-1-5-82-3351576649-1006875745-771203599-42452693-1279824824).
Във всеки случай идентификаторите на класа, приложението, акаунта и вида на достъп могат да се различават.- Изпълнете редактора на системния регистър (regedit.exe);
- Отидете в клона на системния регистър, съответстващ на вашия CLSID. Имам го HKEY_CLASSES_ROOT \ CLSID \000209FF-0000-0000-C000-000000000046; В някои случаи също трябва да потърсите ключа на системния регистър [HKEY_CLASSES_ROOT \ Wow6432Node \ CLSID \. Когато се свързвате с регистъра от разстояние, той ще бъде разположен в секцията HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes \ AppID.
- Параметърът клас трябва да има име. Имам това приложение за Microsoft Word; Най-често този проблем възниква при компоненти:
Потапяща се черупка
CLSID: C2F03A33-21F5-47FA-B4BB-156362A2F239
ПРИЛОЖЕНИЕ: 316CDED5-E4AE-4B15-9113-7055D84DCC97
Брокер по време на работа
CLSID: D63B10C5-BB46-4990-A94F-E40B9D520160
ПРИЛОЖЕНИЕ: 9CA88EE3-ACB7-47C8-AFC4-AB702511C276 - Щракнете с десния бутон върху ключа на системния регистър и изберете Разрешения;
- Кликнете върху бутона напреднали;
- В раздела собственик (Собственик) ще бъде посочен NT Service \ TrustedInstaller или система;
- Натиснете бутона промяна и въведете името на вашия администраторски акаунт. Запазете промените;
- Моля, обърнете внимание, че името на собственика на клона се е променило към вашия акаунт. Поставете зора Сменете собственика върху подконтейнери и обекти (Сменете собственика на подконтейнерите и обектите) и щракнете върху „OK“;
- В списъка с разрешения добавете вашия администраторски акаунт и му предоставете пълен достъп (Пълни разрешения);
- Вие предоставихте права за клона с CLSID. Сега трябва да повторите предишните стъпки, като предоставите на администраторския акаунт правата за клона с вашия APPID от текста на грешката (например, HKEY_CLASSES_ROOT \ AppID \AD65A69D-3831-40D7-9629-9B0B50A93843;
- Сега стартирайте конзолата за управление на компоненти dcomcnfg с права на администратор (Контролен панел \ Всички елементи на контролния панел \ Административни инструменти \ Компонентни услуги);
- В конзолата за компоненти отидете на клона Компонентни услуги -> Компютри -> Моят компютър -> DCOM Config. В списъка на компонентите намерете името на компонента, който сте дефинирали във втората стъпка (стойността в колоната ID на приложението трябва да съответства на вашата CLSID от грешката). Свойства на отворените компоненти; Ако не можете да намерите своя компонент в списъка, вероятно имате 64-битова версия на Windows и стартираният компонент е 32-битов. В този случай трябва да стартирате конзолата DCOM с командата:
mmc comexp.msc / 32
- Отидете в раздела сигурност. Всички контроли трябва да бъдат редактирани; Ако отворите конзолата dcomcnfg преди промяна на разрешенията в клона на системния регистър, всички настройки в раздела Защита ще бъдат блокирани (не могат да бъдат променени), въпреки факта, че сте стартирали конзолата като администратор.
- В моя случай приложението нямаше достатъчно права за разрешение за локално активиране. В раздел Разрешения за стартиране и активиране изберете Персонализиране и щракнете върху бутона Редактиране;
- В списъка за достъп трябва да добавите акаунт, който нямаше разрешения за стартиране. Името на акаунта беше посочено в текста за грешка: в зависимост от текста в DCOM грешка 10016, това може да е така система, конкретния потребител или акаунт, под който се стартира пула IIS (в този случай трябва да добавите достъп за локалната група IIS_IUSR).съвет. Ако NT AUTHORITY \ NETWORK SERVICE беше посочен вместо NT AUTHORITY \ система в първоначалния журнал за грешки, трябва да дадете местни права за стартиране и активиране за акаунта на NetworkService.
- Дайте необходимите разрешения за акаунта. Например, Локално активиране -> Разрешаване и локално стартиране -> Разрешаване;
- Рестартирайте компютъра си и проверете дневниците на събитията. DCOM грешка 10016 трябва да изчезне.