Windows Tips & News

Rette til hændelses-id-fejl 10016: DCOM-serveren har ikke lokale aktiveringstilladelser for PCNAME\Brugernavn SID

click fraud protection
ANBEFALEDE: Klik her for at løse Windows-problemer og optimere systemets ydeevne

For nylig, på min Windows 8.1 pc, ud af ingenting, begyndte jeg at få fejl i hændelsesloggen efter installation af opdateringer på en patch tirsdag. Fejlen var relateret til distribueret COM (DCOM):

De applikationsspecifikke tilladelsesindstillinger giver ikke lokal aktiveringstilladelse til COM Server-applikationen med CLSID {9E175B6D-F52A-11D8-B9A5-505054503030} og APPID {9E175B9C-F52A-11D8-B9A5-505054503030} til brugeren PCNAME\Brugernavn SID S-1-5-21-81864976-3388411891-1937036257-1001 fra adressen LocalHost (bruger LRPC), der kører i applikationsbeholderen Utilgængelig SID (S-1-15-2-1430448594-2639229838-973813799-439329657-1197984847-4069167804-1277922394). Denne sikkerhedstilladelse kan ændres ved hjælp af det administrative værktøj Component Services.

Sådan en kompliceret fejl kan få uerfarne brugere til at kaste op i frustration. De er ikke bekendt med denne terminologi. Plus, fejlfinding af DCOM-fejl er en smerte, så jeg ignorerede det i starten, men hændelsesloggen var fuld af dem, da den opstod hver time eller deromkring. Fast besluttet på at rette op på det, besluttede jeg at undersøge det.

Reklame

For dem af jer, der ikke ved det, er COM Microsofts gamle objektorienterede inter-proces kommunikationsteknologi. En COM-server er en eksekverbar (EXE eller DLL), der implementerer et sæt COM-objekter. Mange Windows-komponenter er implementeret som COM-objekter og følger standard COM-regler for at kommunikere med hinanden. COM-servere er registreret i registreringsdatabasen og har et klasse-id (CLSID) og et APPID.

Det første skridt til at fejlfinde denne fejl var at finde ud af, hvilken DCOM-komponent CLSID'et og APPID'et var relateret til. Så start registreringseditoren og gå til denne registreringsnøgle:

HKEY_CLASSES_ROOT\CLSID\{9E175B6D-F52A-11D8-B9A5-505054503030}

Denne registreringsnøgle peger også på det samme AppID som fejlmeddelelsen, som er {9E175B9C-F52A-11D8-B9A5-505054503030}. Så gå næste gang til

HKCR\APPID\{9E175B9C-F52A-11D8-B9A5-505054503030}

Dette fortalte mig, at komponenten var WSearch (et Windows Search COM-objekt).

Næste trin var at tildele denne CLSID/AppID de korrekte lokale aktiveringstilladelser, som den ønskede - af mit brugersikkerheds-ID (SID) og app-SID. For at gøre det tilbyder Windows et Component Services-værktøj, som lader brugeren ændre start- og aktiveringstilladelser, adgangstilladelser og konfigurationstilladelser på COM-servere.

Åbn Administrative værktøjer -> Komponenttjenester. Udvid Component Services -> Computer -> My Computer -> DCOM Config. Find 'WSearch' og højreklik på det -> Egenskaber. Gå til fanen "Sikkerhed".

Da jeg gjorde dette, så jeg, at alt var nedtonet (deaktiveret) på fanen Sikkerhed for dette COM-objekt, så jeg var nødt til at give min brugerkonto fulde tilladelser i registreringsdatabasen først. Jeg åbnede Regedit igen og gik til den samme nøgle

HKEY_CLASSES_ROOT\AppID\{9E175B9C-F52A-11D8-B9A5-505054503030}

og ændrede tilladelserne. Først skal du tage ejerskab (tjek 'Erstat ejer på underbeholdere og objekter'), og derefter tilføje dit brugernavn og give det fuld kontrol. Bagefter kan du ændre ejerskabet tilbage til den oprindelige konto (NT Service\TrustedInstaller).

At tage ejerskab og give administratortilladelser er ekstremt nemt med Winaero's RegOwnershipEx app.

Nu genåbnede jeg Component Services (Dcomcnfg.exe) og gik til WSearch-egenskaber, fanen Sikkerhed og var nu i stand til at redigere sikkerhedstilladelserne på start- og aktiveringstilladelser, som vises som det her:

start-og-aktiveringstilladelser

Gennem sikkerhedsgruppen Alle har min brugerkonto allerede lokale aktiveringstilladelser, men der er også vist 3 andre SID'er, som ikke er kendte brugerkonti eller grupper, som deres ikon angiver. De er applikations-SID'er og henviser til applikationer. Hændelseslogfejlen sagde også "... kører i applikationsbeholderen Utilgængelig SID (S-1-15-2-1430448594-2639229838-973813799-439329657-1197984847-4069167804-1277922394).

Nu ser det ikke ud til, at Windows objektvælger-brugergrænsefladen giver dig mulighed for at tilføje applikations-SID'er til hovedsikkerhedsobjekter. Så efter at have klikket på Tilføj klikkede jeg på Avanceret... og derefter Find nu. Dette vil vise alle objekterne. Men de fleste af dem var konto-SID'er. Jeg lagde mærke til "ALL APPLICATION PACKAGES", som som navnet antyder sandsynligvis er en gruppe for alle applikationspakker, så jeg valgte den. Klik på OK overalt for at tilføje det, og giv det derefter tilladelser til lokal start og lokal aktivering.

alle-applikationspakker

Når du nu klikker på OK og lukker Component Services UI, er fejlen væk fra hændelsesloggen, hvilket betyder, at WSearch COM-komponenten nu har de korrekte lokale lancerings- og aktiveringstilladelser.

Jeg skrev denne artikel som en generel guide til at hjælpe andre med at fejlfinde DCOM-fejl i deres hændelseslog på en lignende måde. Jeg er stadig bekymret over, hvorfor Windows endnu ikke har et værktøj til nemt at gendanne de korrekte tilladelser til COM-objekter, hvis de bliver rodet.

ANBEFALEDE: Klik her for at løse Windows-problemer og optimere systemets ydeevne
SUSE Linux Enterprise Server 15 SP1 til WSL er nu tilgængelig på Microsoft Store

SUSE Linux Enterprise Server 15 SP1 til WSL er nu tilgængelig på Microsoft Store

Hvis du bruger WSL-funktionen i Windows 10 (tidligere kendt som Bash On Ubuntu), ved du helt sikk...

Læs mere

Gratis Windows 10-opgraderingstilbud er slut

Gratis Windows 10-opgraderingstilbud er slut

ANBEFALEDE: Klik her for at løse Windows-problemer og optimere systemets ydeevneTilbage i 2015 ti...

Læs mere

Vivaldi 1.14: Vertikal læsetilstand

Vivaldi 1.14: Vertikal læsetilstand

Et nyt øjebliksbillede af udvikleren af ​​den mest innovative webbrowser Vivaldi er ude i dag. Sn...

Læs mere