Correzione per l'errore ID evento 10016: il server DCOM non dispone delle autorizzazioni di attivazione locale per PCNAME\Username SID
Di recente, sul mio PC Windows 8.1, dal nulla, ho iniziato a ricevere errori nel registro eventi dopo aver installato gli aggiornamenti in un Patch Tuesday. L'errore era correlato a Distributed COM (DCOM):
Le impostazioni di autorizzazione specifiche dell'applicazione non concedono l'autorizzazione di attivazione locale per l'applicazione server COM con CLSID {9E175B6D-F52A-11D8-B9A5-505054503030} e APPID {9E175B9C-F52A-11D8-B9A5-505054503030} all'utente PCNAME\Username SID S-1-5-21-81864976-3388411891-1937036257-1001 dall'indirizzo LocalHost (utilizzando LRPC) in esecuzione nel contenitore dell'applicazione SID non disponibile (S-1-15-2-1430448594-2639229838-973813799-439329657-1197984847-4069167804-1277922394). Questa autorizzazione di protezione può essere modificata utilizzando lo strumento di amministrazione di Servizi componenti.
Un errore così complicato potrebbe far vomitare frustrati dagli utenti inesperti. Non hanno familiarità con questa terminologia. Inoltre, la risoluzione degli errori DCOM è un problema, quindi all'inizio l'ho ignorato, ma il registro eventi ne era pieno poiché si verificava ogni ora circa. Determinato a risolverlo, ho deciso di indagare.
Annuncio
Per quelli di voi che non lo sanno, COM è la vecchia tecnologia di comunicazione interprocesso orientata agli oggetti di Microsoft. Un server COM è un eseguibile (EXE o DLL) che implementa un insieme di oggetti COM. Molti componenti di Windows sono implementati come oggetti COM e seguono regole COM standard per comunicare tra loro. I server COM sono registrati nel Registro e hanno un Class ID (CLSID) e un APPID.
Il primo passo per risolvere questo errore è stato scoprire a quale componente DCOM erano correlati CLSID e APPID. Quindi avvia l'editor del registro e vai a questa chiave di registro:
HKEY_CLASSES_ROOT\CLSID\{9E175B6D-F52A-11D8-B9A5-505054503030}
Questa chiave di registro punta anche allo stesso AppID del messaggio di errore che è {9E175B9C-F52A-11D8-B9A5-505054503030}. Quindi, vai a
HKCR\APPID\{9E175B9C-F52A-11D8-B9A5-505054503030}
Questo mi ha detto che il componente era WSearch (un oggetto COM di ricerca di Windows).
Il passaggio successivo è stato assegnare a questo CLSID/AppID i permessi di attivazione locale corretti desiderati, del mio ID di sicurezza (SID) dell'utente e del SID dell'app. Per fare ciò, Windows fornisce uno strumento Servizi componenti che consente all'utente di modificare le autorizzazioni di avvio e attivazione, le autorizzazioni di accesso e le autorizzazioni di configurazione sui server COM.
Apri Strumenti di amministrazione -> Servizi componenti. Espandere Servizi componenti -> Computer -> Risorse del computer -> Configurazione DCOM. Individua 'WSearch' e fai clic con il pulsante destro del mouse -> Proprietà. Vai alla scheda "Sicurezza".
Dopo aver fatto ciò, ho visto che tutto era disattivato (disabilitato) nella scheda Sicurezza per questo oggetto COM, quindi dovevo prima dare al mio account utente le autorizzazioni complete nel registro. Ho aperto di nuovo Regedit e sono andato alla stessa chiave
HKEY_CLASSES_ROOT\AppID\{9E175B9C-F52A-11D8-B9A5-505054503030}
e ho cambiato i permessi. Per prima cosa devi assumerne la proprietà (seleziona "Sostituisci proprietario su sottocontenitori e oggetti"), quindi aggiungi il tuo nome utente e assegnagli il controllo completo. Successivamente, è possibile ripristinare la proprietà sull'account originale (NT Service\TrustedInstaller).
Assumere la proprietà e concedere i permessi di amministratore è estremamente facile con Winaero's RegOwnershipEx app.
Ora ho riaperto i Servizi componenti (Dcomcnfg.exe) e sono andato alle proprietà di WSearch, alla scheda Sicurezza e era ora in grado di modificare le autorizzazioni di sicurezza su Autorizzazioni di avvio e attivazione, che vengono mostrate come questo:
Attraverso il gruppo di sicurezza Everyone, il mio account utente dispone già delle autorizzazioni di attivazione locale, ma sono mostrati anche altri 3 SID che non sono account utente o gruppi noti come indica la loro icona. Sono SID dell'applicazione e fanno riferimento alle applicazioni. L'errore del registro eventi diceva anche "... in esecuzione nel contenitore dell'applicazione SID non disponibile (S-1-15-2-1430448594-2639229838-973813799-439329657-1197984847-4069167804-1277922394).
Ora l'interfaccia utente del selettore di oggetti di Windows non sembra consentire di aggiungere i SID dell'applicazione per gli oggetti dell'entità di sicurezza. Quindi, dopo aver fatto clic su Aggiungi, ho fatto clic su Avanzate... e poi Trova ora. Questo elencherà tutti gli oggetti. Ma la maggior parte erano SID di account. Ho notato "TUTTI I PACCHETTI DI APPLICAZIONE" che, come suggerisce il nome, è probabilmente un gruppo per tutti i pacchetti di applicazioni, quindi l'ho selezionato. Fare clic su OK ovunque per aggiungerlo e quindi concedergli le autorizzazioni di avvio locale e attivazione locale.
Ora, dopo aver fatto clic su OK e aver chiuso l'interfaccia utente dei servizi componenti, l'errore è scomparso dal registro eventi, il che significa che il componente WSearch COM ora dispone delle autorizzazioni di avvio e attivazione locali corrette.
Ho scritto questo articolo come guida generale per aiutare chiunque altro a risolvere gli errori DCOM nel registro eventi in modo simile. Sono ancora preoccupato perché Windows non ha ancora uno strumento per ripristinare facilmente le autorizzazioni corrette per gli oggetti COM nel caso vengano incasinati.