Oplossing voor gebeurtenis-ID-fout 10016: DCOM-server heeft geen lokale activeringsrechten voor PCNAME\Gebruikersnaam SID
Onlangs kreeg ik op mijn pc met Windows 8.1 uit het niets fouten in het gebeurtenislogboek na het installeren van updates op een patch-dinsdag. De fout was gerelateerd aan Distributed COM (DCOM):
De toepassingsspecifieke machtigingsinstellingen verlenen geen lokale activeringsmachtiging voor de COM Server-toepassing met CLSID {9E175B6D-F52A-11D8-B9A5-505054503030} en APPID {9E175B9C-F52A-11D8-B9A5-505054503030} naar de gebruiker PCNAME\Username SID S-1-5-21-81864976-3388411891-1937036257-1001 van adres LocalHost (met LRPC) uitgevoerd in de toepassingscontainer Niet-beschikbare SID (S-1-15-2-1430448594-2639229838-973813799-439329657-1197984847-4069167804-1277922394). Deze beveiligingsmachtiging kan worden gewijzigd met behulp van het beheerprogramma Component Services.
Een dergelijke gecompliceerde fout kan ervoor zorgen dat onervaren gebruikers gefrustreerd overgeven. Ze kennen deze terminologie niet. Bovendien is het oplossen van DCOM-fouten lastig, dus ik negeerde het eerst, maar het gebeurtenislogboek stond er vol mee omdat het elk uur of zo voorkwam. Vastbesloten om het te repareren, besloot ik het te onderzoeken.
Advertentie
Voor degenen onder u die het niet weten, COM is de oude objectgeoriënteerde communicatietechnologie tussen processen van Microsoft. Een COM-server is een uitvoerbaar bestand (EXE of DLL) dat een set COM-objecten implementeert. Veel Windows-componenten zijn geïmplementeerd als COM-objecten en volgen standaard COM-regels om met elkaar te communiceren. COM-servers zijn geregistreerd in het register en hebben een Class ID (CLSID) en een APPID.
De eerste stap om deze fout op te lossen, was uitzoeken aan welk DCOM-onderdeel de CLSID en APPID waren gerelateerd. Dus start de Register-editor en ga naar deze registersleutel:
HKEY_CLASSES_ROOT\CLSID\{9E175B6D-F52A-11D8-B9A5-505054503030}
Deze registersleutel verwijst ook naar dezelfde AppID als de foutmelding {9E175B9C-F52A-11D8-B9A5-505054503030}. Dus, ga vervolgens naar
HKCR\APPID\{9E175B9C-F52A-11D8-B9A5-505054503030}
Dit vertelde me dat het onderdeel WSearch was (een Windows Search COM-object).
De volgende stap was om aan deze CLSID/AppID de juiste lokale activeringsrechten toe te wijzen die het wilde - van mijn gebruikersbeveiligings-ID (SID) en de app-SID. Om dat te doen, biedt Windows een Component Services-tool waarmee de gebruiker start- en activeringsrechten, toegangsrechten en configuratierechten op COM-servers kan wijzigen.
Open Systeembeheer -> Component Services. Vouw Component Services -> Computer -> Deze computer -> DCOM-configuratie uit. Zoek 'WSearch' en klik er met de rechtermuisknop op -> Eigenschappen. Ga naar het tabblad "Beveiliging".
Toen ik dit deed, zag ik dat alles grijs was (uitgeschakeld) op het tabblad Beveiliging voor dit COM-object, dus ik moest mijn gebruikersaccount eerst volledige machtigingen in het register geven. Ik opende Regedit opnieuw en ging naar dezelfde sleutel
HKEY_CLASSES_ROOT\AppID\{9E175B9C-F52A-11D8-B9A5-505054503030}
en de machtigingen gewijzigd. Eerst moet u eigenaar worden (vink 'Eigenaar vervangen op subcontainers en objecten' aan), en vervolgens uw gebruikersnaam toevoegen en deze volledige controle geven. Daarna kunt u het eigendom terugzetten naar het oorspronkelijke account (NT Service\TrustedInstaller).
Eigenaar worden en beheerdersrechten geven is heel eenvoudig met Winaero's RegEigendomEx app.
Nu opende ik Component Services (Dcomcnfg.exe) opnieuw en ging naar WSearch-eigenschappen, tabblad Beveiliging en was nu in staat om de beveiligingsmachtigingen voor start- en activeringsmachtigingen te bewerken, die worden weergegeven als: dit:
Via de beveiligingsgroep Iedereen heeft mijn gebruikersaccount al lokale activeringsrechten, maar er worden ook 3 andere SID's weergegeven die geen bekende gebruikersaccounts of groepen zijn, zoals hun pictogram aangeeft. Dit zijn Application SID's en verwijzen naar Applications. De gebeurtenislogboekfout zei ook "... actief in de toepassingscontainer Niet-beschikbare SID (S-1-15-2-1430448594-2639229838-973813799-439329657-1197984847-4069167804-1277922394).
Nu lijkt de gebruikersinterface van de Windows-objectkiezer u geen SID's voor toepassingen toe te voegen voor hoofdbeveiligingsobjecten. Dus nadat ik op Toevoegen had geklikt, klikte ik op Geavanceerd... en dan Nu zoeken. Hiermee worden alle objecten weergegeven. Maar de meeste waren account-SID's. Ik zag "ALLE APPLICATIEPAKKETTEN" wat, zoals de naam al aangeeft, waarschijnlijk een groep is voor alle applicatiepakketten, dus ik heb het geselecteerd. Klik overal op OK om het toe te voegen en geef het vervolgens de machtigingen Local Launch en Local Activation.
Als u nu op OK klikt en de gebruikersinterface van Component Services sluit, is de fout verdwenen uit het gebeurtenislogboek, wat betekent dat de WSearch COM-component nu de juiste lokale start- en activeringsrechten heeft.
Ik heb dit artikel geschreven als algemene gids om anderen te helpen bij het oplossen van DCOM-fouten in hun gebeurtenislogboek op een vergelijkbare manier. Ik ben nog steeds bezorgd waarom Windows nog geen tool heeft om gemakkelijk de juiste machtigingen voor COM-objecten te herstellen voor het geval ze in de war raken.