Recentemente, 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):
come rimuovo la protezione da scrittura da un usb?
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-50505054503030} 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 sicurezza può essere modificata utilizzando lo strumento di amministrazione di Servizi componenti.
Un errore così complicato potrebbe far vomitare per la frustrazione gli utenti inesperti. Non hanno familiarità con questa terminologia. Inoltre, la risoluzione degli errori DCOM è un problema, quindi l'ho ignorato all'inizio, ma il registro degli eventi ne era pieno poiché si verificava circa ogni ora. Determinato a risolverlo, ho deciso di indagare.
Pubblicità
Per quelli di voi che non lo sanno, COM è la vecchia tecnologia di comunicazione tra processi orientata agli oggetti di Microsoft. Un server COM è un eseguibile (EXE o DLL) che implementa un insieme di oggetti COM. Molti componenti di Windows vengono implementati come oggetti COM e seguono le regole COM standard per comunicare tra loro. I server COM sono registrati nel Registro di sistema e hanno un ID classe (CLSID) e un APPID.
Il primo passaggio per risolvere questo errore è stato scoprire a quale componente DCOM erano correlati CLSID e APPID. Quindi avvia l'Editor del Registro di sistema 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 al prossimo
HKCR APPID {9E175B9C-F52A-11D8-B9A5-505054503030}
Questo mi ha detto che il componente era WSearch (un oggetto COM di Windows Search).
Il passaggio successivo consisteva nell'assegnare a questo CLSID / AppID, le autorizzazioni di attivazione locale corrette che desiderava, del mio ID di sicurezza utente (SID) e del SID dell'app. A tale scopo, 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 'Protezione'.
Dopo averlo fatto, 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 di sistema. Ho aperto di nuovo Regedit e sono andato alla stessa chiave
HKEY_CLASSES_ROOT AppID {9E175B9C-F52A-11D8-B9A5-505054503030}
e modificato le autorizzazioni. Per prima cosa devi assumere la proprietà (seleziona 'Sostituisci proprietario su sottocontenitori e oggetti'), quindi aggiungi il tuo nome utente e assegnagli il controllo completo. Successivamente, puoi ripristinare la proprietà sull'account originale (NT Service TrustedInstaller).
Assumere la proprietà e concedere le autorizzazioni di amministratore è estremamente facile con Winaero's RegOwnershipEx app.
Ora ho riaperto i Servizi componenti (Dcomcnfg.exe) e sono andato alle proprietà WSearch, scheda Sicurezza e ora ero in grado di modificare le autorizzazioni di sicurezza su Launch e Activation Permissions, che sono mostrate in questo modo:
Tramite il gruppo di sicurezza Everyone, il mio account utente dispone già delle autorizzazioni di attivazione locale, ma vengono visualizzati anche altri 3 SID che non sono account utente o gruppi noti come indica la loro icona. Sono SID dell'applicazione e si riferiscono 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 oggetti di Windows non sembra consentire di aggiungere SID dell'applicazione per gli oggetti entità di sicurezza. Quindi, dopo aver fatto clic su Aggiungi, ho fatto clic su Avanzate ... e quindi su Trova ora. Questo elencherà tutti gli oggetti. Ma la maggior parte di loro erano SID dell'account. Ho notato 'TUTTI I PACCHETTI DELL'APPLICAZIONE' che, come suggerisce il nome, è probabilmente un gruppo per tutti i pacchetti dell'applicazione, quindi l'ho selezionato. Fare clic su OK ovunque per aggiungerlo e quindi assegnargli le autorizzazioni di avvio locale e attivazione locale.
come prendere a calci le persone in disaccordo
Ora, facendo clic su OK e chiudendo l'interfaccia utente di Servizi componenti, l'errore è scomparso dal registro eventi, il che significa che il componente WSearch COM ora ha le autorizzazioni di avvio e attivazione locali corrette.
Ho scritto questo articolo come guida generale per aiutare chiunque altro a risolvere gli errori DCOM nel proprio registro eventi in modo simile. Sono ancora preoccupato perché Windows non dispone ancora di uno strumento per ripristinare facilmente le autorizzazioni corrette per gli oggetti COM nel caso in cui vengano incasinati.