РазпространенаCOM грешка 10016 в Windows Разрешенията за приложението не дават локални разрешения за активиране

В тази бележка ще покажа как да коригирам грешката 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).

Във всеки случай идентификаторите на класа, приложението, акаунта и вида на достъп могат да се различават.
  1. Изпълнете редактора на системния регистър (regedit.exe);
  2. Отидете в клона на системния регистър, съответстващ на вашия CLSID. Имам го HKEY_CLASSES_ROOT \ CLSID \000209FF-0000-0000-C000-000000000046; В някои случаи също трябва да потърсите ключа на системния регистър [HKEY_CLASSES_ROOT \ Wow6432Node \ CLSID \. Когато се свързвате с регистъра от разстояние, той ще бъде разположен в секцията HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes \ AppID.
  3. Параметърът клас трябва да има име. Имам това приложение за Microsoft Word; Най-често този проблем възниква при компоненти:
    Потапяща се черупка
    CLSID: C2F03A33-21F5-47FA-B4BB-156362A2F239
    ПРИЛОЖЕНИЕ: 316CDED5-E4AE-4B15-9113-7055D84DCC97
    Брокер по време на работа
    CLSID: D63B10C5-BB46-4990-A94F-E40B9D520160
    ПРИЛОЖЕНИЕ: 9CA88EE3-ACB7-47C8-AFC4-AB702511C276
  4. Щракнете с десния бутон върху ключа на системния регистър и изберете Разрешения;
  5. Кликнете върху бутона напреднали;
  6. В раздела собственик (Собственик) ще бъде посочен NT Service \ TrustedInstaller или система;
  7. Натиснете бутона промяна и въведете името на вашия администраторски акаунт. Запазете промените;
  8. Моля, обърнете внимание, че името на собственика на клона се е променило към вашия акаунт. Поставете зора Сменете собственика върху подконтейнери и обекти (Сменете собственика на подконтейнерите и обектите) и щракнете върху „OK“;
  9. В списъка с разрешения добавете вашия администраторски акаунт и му предоставете пълен достъп (Пълни разрешения);
  10. Вие предоставихте права за клона с CLSID. Сега трябва да повторите предишните стъпки, като предоставите на администраторския акаунт правата за клона с вашия APPID от текста на грешката (например, HKEY_CLASSES_ROOT \ AppID \AD65A69D-3831-40D7-9629-9B0B50A93843;
  11. Сега стартирайте конзолата за управление на компоненти dcomcnfg с права на администратор (Контролен панел \ Всички елементи на контролния панел \ Административни инструменти \ Компонентни услуги);
  12. В конзолата за компоненти отидете на клона Компонентни услуги -> Компютри -> Моят компютър -> DCOM Config. В списъка на компонентите намерете името на компонента, който сте дефинирали във втората стъпка (стойността в колоната ID на приложението трябва да съответства на вашата CLSID от грешката). Свойства на отворените компоненти; Ако не можете да намерите своя компонент в списъка, вероятно имате 64-битова версия на Windows и стартираният компонент е 32-битов. В този случай трябва да стартирате конзолата DCOM с командата: mmc comexp.msc / 32
  13. Отидете в раздела сигурност. Всички контроли трябва да бъдат редактирани; Ако отворите конзолата dcomcnfg преди промяна на разрешенията в клона на системния регистър, всички настройки в раздела Защита ще бъдат блокирани (не могат да бъдат променени), въпреки факта, че сте стартирали конзолата като администратор.
  14. В моя случай приложението нямаше достатъчно права за разрешение за локално активиране. В раздел Разрешения за стартиране и активиране изберете Персонализиране и щракнете върху бутона Редактиране;
  15. В списъка за достъп трябва да добавите акаунт, който нямаше разрешения за стартиране. Името на акаунта беше посочено в текста за грешка: в зависимост от текста в DCOM грешка 10016, това може да е така система, конкретния потребител или акаунт, под който се стартира пула IIS (в този случай трябва да добавите достъп за локалната група IIS_IUSR).съвет. Ако NT AUTHORITY \ NETWORK SERVICE беше посочен вместо NT AUTHORITY \ система в първоначалния журнал за грешки, трябва да дадете местни права за стартиране и активиране за акаунта на NetworkService.
  16. Дайте необходимите разрешения за акаунта. Например, Локално активиране -> Разрешаване и локално стартиране -> Разрешаване;
  17. Рестартирайте компютъра си и проверете дневниците на събитията. DCOM грешка 10016 трябва да изчезне.