Pogreška distribuiraneCOM 10016 u sustavu Windows Dozvole za aplikaciju ne daju lokalna dopuštenja za aktiviranje

U ovoj napomeni pokazat ću kako popraviti pogrešku c ID ID 10016 iz izvora DistributedCOM na računalu sa sustavom Windows 10 / Windows Server 2012 R2. Pogreška DCOM 10016 prilično je česta i za klijentsku i za poslužiteljsku verziju sustava Windows, počevši od vremena Windows XP i ispravljena je na isti način, bez obzira na verziju sustava Windows.

Problem se očituje na sljedeći način: u zapisniku događaja sustava, kada se računalo pokreće ili kada pokušava pokrenuti / instalirati aplikaciju, pojavljuje se sljedeća pogreška:

Naziv dnevnika: Sustav
izvor: DistributedCOM
ID događaja: 10016
nivo: Pogreška
korisnik: SUSTAV
opis: Postavke dopuštenja specifične za aplikaciju ne daju dozvolu za lokalno pokretanje za aplikaciju COM poslužitelja s CLSID 1CCB96F4-B8AD-4B43-9688-B273F58E0910 i APPID AD65A69D-3831-40D7-9629-9B0B50A93843 NT AUTHORITY \ sustav sa SID ( S-1-5-18) i LocalHost adresa (koristeći LRPC). Ovo sigurnosno dopuštenje može se promijeniti pomoću alata za upravljanje komponentama..

U engleskim verzijama sustava Windows opis pogreške je:

Postavke zadanih postavki računala ne daju dozvolu za lokalnu aktivaciju za COM poslužiteljsku aplikaciju s CLSID-om

000209FF-0000-0000-C000-000000000046 i APPID nedostupni korisniku IIS APPPOOL \ appIISPool SID (S-1-5-82-3351576649-1006875745-771203599-42452693-1279824824) s adrese LocalHost (pomoću LRPC) koji radi u spremnik aplikacije Nedostupan SID (Nedostupno). Ovo sigurnosno dopuštenje može se izmijeniti pomoću administrativnog alata Component Services.

Sudeći prema opisu pogreške: korisnik (na primjer, IIS Apppool) ili sustav (NT AUTHORITY \ sustav) pokušava pokrenuti određenu COM komponentu pomoću DCOM infrastrukture i ne može to učiniti zbog nedostatka prava lokalnog pokretanja ili lokalne aktivacije ( Lokalno dopuštenje za aktiviranje). Kôd pogreške sadrži samo klase kodova COM komponente i aplikacije. Pokušajmo odrediti kojoj aplikaciji pripada identifikator i pružiti prava potrebna za pokretanje.

Kopirajte CLSID i APPID iz opisa događaja. U mom slučaju jest

CLSID: 000209FF-0000-0000-C000-000000000046
PRILOG: AD65A69D-3831-40D7-9629-9B0B50A93843

(u nekim slučajevima identifikator aplikacije možda nije naveden - APPID Nedostupan).

Također obratite pažnju na to koja dozvola nedostaju (dopuštenje za lokalnu aktivaciju) i za koji račun (NT AUTHORITY \ SYSTEM ili IIS APPPOOL \ appIISPool SID - S-1-5-82-3351576649-1006875745-771203599-42452693-1279824824).

U svakom se slučaju identifikatori klase, aplikacije, računa i vrste pristupa mogu razlikovati.
  1. Pokrenite uređivač registra (regedit.exe);
  2. Idite u podružnicu registra koja odgovara vašem CLSID-u. Imam ga HKEY_CLASSES_ROOT \ CLSID \000209FF-0000-0000-C000-000000000046; U nekim slučajevima trebate potražiti i ključ registra [HKEY_CLASSES_ROOT \ Wow6432Node \ CLSID \. Ako se daljinsko spajate na registar, bit će smješten u odjeljku HKEY_LOCAL_MACHINE \ SOFTWARE \ Klase \ AppID.
  3. Parametar klase mora imati ime. Imam Microsoft Word aplikaciju; najčešće se ovaj problem pojavljuje sa komponentama:
    Potopna školjka
    CLSID: C2F03A33-21F5-47FA-B4BB-156362A2F239
    PRILOG: 316CDED5-E4AE-4B15-9113-7055D84DCC97
    Runtime broker
    CLSID: D63B10C5-BB46-4990-A94F-E40B9D520160
    PRILOG: 9CA88EE3-ACB7-47C8-AFC4-AB702511C276
  4. Desnom tipkom miša kliknite registarski ključ i odaberite Dozvole;
  5. Kliknite na gumb napredni;
  6. U odjeljku vlasnik (Vlasnik) će biti naveden NT usluga \ TrustedInstaller ili sistem;
  7. Pritisnite gumb promjena i upišite naziv svog administrativnog računa. Spremite promjene;
  8. Napominjemo da se ime vlasnika podružnice promijenilo na vaš račun. Stavite zoru Zamijenite vlasnika na podkontejnerima i objektima (Zamijenite vlasnika potkrovlja i objekata) i kliknite "U redu";
  9. Na popisu dozvola dodajte svoj administratorski račun i omogućite mu puni pristup (puna dopuštenja);
  10. Dali ste prava za podružnicu s CLSID-om. Sada trebate ponoviti prethodne korake, dajući administratoru prava na granu prava sa vašom APPID-om iz teksta pogreške (na primjer, HKEY_CLASSES_ROOT \ AppID \AD65A69D-3831-40D7-9629-9B0B50A93843;
  11. Sada pokrenite konzolu za upravljanje komponentama dcomcnfg s pravima administratora (Upravljačka ploča \ Sve stavke na upravljačkoj ploči \ Administrativni alati \ Usluge komponenata);
  12. U konzoli komponenata idite na podružnicu Usluge komponenti -> računala -> Moje računalo -> DCOM Config. Na popisu komponenata pronađite naziv komponente koju ste definirali u drugom koraku (vrijednost u stupcu ID aplikacije trebala bi odgovarati vašem CLSID-u iz pogreške). Otvorena svojstva komponenata; Ako svoju komponentu ne možete pronaći na popisu, vjerojatno imate 64-bitnu verziju sustava Windows, a pokrenuta komponenta je 32-bitna. U tom slučaju trebate pokrenuti DCOM konzolu s naredbom: mmc comexp.msc / 32
  13. Idite na karticu sigurnosti. Sve kontrole moraju se uređivati; Ako otvorite dcomcnfg konzolu prije promjene dozvola na grani registra, sve postavke na kartici Sigurnosti bit će blokirane (ne mogu se mijenjati), uprkos činjenici da ste konzolu pokrenuli kao administrator..
  14. U mom slučaju aplikacija nije imala dovoljno prava na Lokalno dopuštenje za aktiviranje. U odjeljku Dozvole za pokretanje i aktiviranje odaberite Prilagodi i kliknite gumb Uredi;
  15. Na popisu pristupa morate dodati račun za koji nedostaju dozvole za pokretanje. Naziv računa bio je naveden u tekstu pogreške: ovisno o tekstu pogreške DCOM 10016, to može biti sistem, određenog korisnika ili računa pod kojim se pokreće skup IIS (u ovom slučaju trebate dodati pristup lokalnoj grupi IIS_IUSR).vijeće. Ako je umjesto početnog NT AUTHORITY \ sustava u početnom dnevniku pogreške određeno NT AUTHORITY \ NETWORK SERVICE, morate dati lokalna prava pokretanja i aktiviranja za NetworkService račun.
  16. Dodijelite potrebna dopuštenja za račun. Na primjer, Lokalna aktivacija -> Dopusti i lokalno pokretanje -> Dopusti;
  17. Ponovo pokrenite računalo i provjerite zapise događaja. DCOM greška 10016 trebala bi nestati.