Oprava chyby ID udalosti 10016: Server DCOM nemá povolenia na miestnu aktiváciu pre PCNAME\Username SID
Nedávno sa mi na mojom počítači so systémom Windows 8.1 z ničoho nič začali objavovať chyby v denníku udalostí po inštalácii aktualizácií v utorok o oprave. Chyba sa týkala distribuovaného modelu COM (DCOM):
Nastavenia povolení špecifické pre aplikáciu neudeľujú povolenie na lokálnu aktiváciu pre aplikáciu COM Server s CLSID {9E175B6D-F52A-11D8-B9A5-505054503030} a APPID {9E175B9C-F52A-11D8-B9A5-505054503030} pre používateľa PCNAME\Username SID S-1-5-21-81864976-3388411891-1937036257-1001 z adresy LocalHost (pomocou LRPC) spustenej v kontajneri aplikácie Nedostupné SID (S-1-15-2-1430448594-2639229838-973813799-439329657-1197984847-4069167804-1277922394). Toto bezpečnostné povolenie je možné upraviť pomocou nástroja na správu Component Services.
Takáto komplikovaná chyba môže spôsobiť, že neskúsení používatelia budú frustrovať. Túto terminológiu nepoznajú. Navyše, odstraňovanie chýb DCOM je bolestivé, takže som to najprv ignoroval, ale denník udalostí ich bol plný, pretože sa vyskytovali približne každú hodinu. Rozhodol som sa to napraviť a rozhodol som sa to preskúmať.
Reklama
Pre tých z vás, ktorí nevedia, COM je stará objektovo orientovaná medziprocesová komunikačná technológia spoločnosti Microsoft. Server COM je spustiteľný súbor (EXE alebo DLL), ktorý implementuje množinu objektov COM. Mnohé súčasti systému Windows sú implementované ako objekty COM a na vzájomnú komunikáciu dodržiavajú štandardné pravidlá COM. Servery COM sú registrované v registri a majú ID triedy (CLSID) a APPID.
Prvým krokom na vyriešenie tejto chyby bolo zistenie, s ktorým komponentom DCOM súvisia CLSID a APPID. Spustite Editor databázy Registry a prejdite na tento kľúč databázy Registry:
HKEY_CLASSES_ROOT\CLSID\{9E175B6D-F52A-11D8-B9A5-505054503030}
Tento kľúč databázy Registry tiež odkazuje na rovnaké ID aplikácie ako chybové hlásenie, ktoré je {9E175B9C-F52A-11D8-B9A5-505054503030}. Takže prejdite ďalej
HKCR\APPID\{9E175B9C-F52A-11D8-B9A5-505054503030}
To mi povedalo, že komponent bol WSearch (objekt Windows Search COM).
Ďalším krokom bolo priradiť tomuto CLSID/AppID správne miestne aktivačné povolenia, ktoré si želal – môjho bezpečnostného ID používateľa (SID) a SID aplikácie. Na tento účel poskytuje systém Windows nástroj Component Services, ktorý umožňuje používateľovi upravovať povolenia na spustenie a aktiváciu, povolenia na prístup a povolenia na konfiguráciu na serveroch COM.
Otvorte Nástroje na správu -> Služby komponentov. Rozbaľte Služby komponentov -> Počítač -> Tento počítač -> Konfigurácia DCOM. Nájdite 'WSearch' a kliknite naň pravým tlačidlom myši -> Vlastnosti. Prejdite na kartu „Zabezpečenie“.
Keď som to urobil, videl som, že na karte Zabezpečenie pre tento objekt COM bolo všetko zašednuté (deaktivované), takže som najprv musel svojmu používateľskému účtu udeliť úplné povolenia v registri. Znovu som otvoril Regedit a prešiel k rovnakému kľúču
HKEY_CLASSES_ROOT\AppID\{9E175B9C-F52A-11D8-B9A5-505054503030}
a zmenili povolenia. Najprv musíte prevziať vlastníctvo (začiarknite políčko „Nahradiť vlastníka v subkontajneroch a objektoch“) a potom pridať svoje používateľské meno a dať mu plnú kontrolu. Potom môžete zmeniť vlastníctvo späť na pôvodný účet (NT Service\TrustedInstaller).
Prevzatie vlastníctva a udelenie oprávnení správcu je s Winaero veľmi jednoduché RegOwnershipEx aplikácia.
Teraz som znova otvoril Služby komponentov (Dcomcnfg.exe) a prešiel som na vlastnosti WSearch, kartu Zabezpečenie a teraz mohol upraviť povolenia zabezpečenia v povoleniach na spustenie a aktiváciu, ktoré sú zobrazené ako toto:
Prostredníctvom bezpečnostnej skupiny Všetci má môj používateľský účet už povolenia na miestnu aktiváciu, ale sú tu zobrazené aj 3 ďalšie identifikátory SID, ktoré nie sú známymi používateľskými účtami alebo skupinami, ako naznačuje ich ikona. Sú to aplikačné SID a odkazujú na aplikácie. Chyba denníka udalostí tiež uvádzala „... spustený v kontajneri aplikácie Nedostupné SID (S-1-15-2-1430448594-2639229838-973813799-439329657-1197984847-4069167804-1277922394).
Zdá sa, že používateľské rozhranie na výber objektov systému Windows vám teraz neumožňuje pridať identifikátory SID aplikácie pre hlavné objekty zabezpečenia. Takže po kliknutí na Pridať som klikol na Rozšírené... a potom Nájsť. Zobrazí sa zoznam všetkých objektov. Väčšina z nich však boli SID účtov. Všimol som si „ALL APLIKAČNÉ BALÍČKY“, čo ako názov napovedá, je pravdepodobne skupina pre všetky balíčky aplikácií, tak som si to vybral. Kliknutím na tlačidlo OK všade ho pridáte a potom mu udelíte povolenia na miestne spustenie a miestnu aktiváciu.
Teraz po kliknutí na tlačidlo OK a zatvorení používateľského rozhrania služieb komponentov sa chyba odstráni z denníka udalostí, čo znamená, že komponent WSearch COM má teraz správne miestne povolenia na spustenie a aktiváciu.
Tento článok som napísal ako všeobecný návod, aby som pomohol komukoľvek inému podobným spôsobom riešiť chyby DCOM v protokole udalostí. Stále ma znepokojuje, prečo Windows ešte nemá nástroj na jednoduché obnovenie správnych povolení pre objekty COM v prípade, že sa pokazia.