Solución para el error de ID de evento 10016: el servidor DCOM no tiene permisos de activación local para PCNAME \ Username SID
Recientemente, en mi PC con Windows 8.1, de la nada, comencé a recibir errores en el Registro de eventos después de instalar actualizaciones en un martes de parches. El error estaba relacionado con COM distribuido (DCOM):
La configuración de permisos específicos de la aplicación no otorga el permiso de activación local para la aplicación del servidor COM con CLSID {9E175B6D-F52A-11D8-B9A5-505054503030} y APPID {9E175B9C-F52A-11D8-B9A5-505054503030} al usuario PCNAME \ Username SID S-1-5-21-81864976-3388411891-1937036257-1001 desde la dirección LocalHost (usando LRPC) ejecutándose en el contenedor de la aplicación SID no disponible (S-1-15-2-1430448594-2639229838-973813799-439329657-1197984847-4069167804-1277922394). Este permiso de seguridad se puede modificar mediante la herramienta administrativa de Servicios de componentes.
Un error tan complicado puede hacer que los usuarios sin experiencia vomiten de frustración. No están familiarizados con esta terminología. Además, solucionar los errores de DCOM es un fastidio, así que lo ignoré al principio, pero el registro de eventos estaba lleno de ellos, ya que ocurría cada hora más o menos. Decidido a arreglarlo, decidí investigar.
Anuncio publicitario
Para aquellos de ustedes que no lo saben, COM es la antigua tecnología de comunicación entre procesos orientada a objetos de Microsoft. Un servidor COM es un ejecutable (EXE o DLL) que implementa un conjunto de objetos COM. Muchos componentes de Windows se implementan como objetos COM y siguen reglas COM estándar para comunicarse entre sí. Los servidores COM están registrados en el Registro y tienen un ID de clase (CLSID) y un APPID.
El primer paso para solucionar este error fue averiguar con qué componente DCOM estaban relacionados CLSID y APPID. Así que inicie el Editor del Registro y vaya a esta clave de Registro:
HKEY_CLASSES_ROOT \ CLSID \ {9E175B6D-F52A-11D8-B9A5-505054503030}
Esta clave de registro también apunta al mismo AppID que el mensaje de error que es {9E175B9C-F52A-11D8-B9A5-505054503030}. Entonces, luego ve a
HKCR \ APPID \ {9E175B9C-F52A-11D8-B9A5-505054503030}
Esto me dijo que el componente era WSearch (un objeto COM de búsqueda de Windows).
El siguiente paso fue asignar a este CLSID / AppID, los permisos de activación local correctos que quería, de mi ID de seguridad de usuario (SID) y el SID de la aplicación. Para ello, Windows proporciona una herramienta de Servicios de componentes que permite al usuario modificar los permisos de inicio y activación, los permisos de acceso y los permisos de configuración en los servidores COM.
Abra Herramientas administrativas -> Servicios de componentes. Expanda Servicios de componentes -> Computadora -> Mi computadora -> Configuración DCOM. Busque 'WSearch' y haga clic derecho -> Propiedades. Vaya a la pestaña "Seguridad".
Al hacer esto, vi que todo estaba en gris (deshabilitado) en la pestaña Seguridad para este objeto COM, por lo que primero necesitaba otorgar a mi cuenta de usuario permisos completos en el Registro. Abrí Regedit de nuevo y fui a la misma clave.
HKEY_CLASSES_ROOT \ AppID \ {9E175B9C-F52A-11D8-B9A5-505054503030}
y cambió los permisos. Primero debe tomar posesión (marque 'Reemplazar propietario en subcontenedores y objetos'), y luego agregar su nombre de usuario y darle Control total. Posteriormente, puede volver a cambiar la propiedad a la cuenta original (NT Service \ TrustedInstaller).
Tomar posesión y otorgar permisos de administrador es extremadamente fácil con Winaero's RegOwnershipEx aplicación.
Ahora volví a abrir los Servicios de componentes (Dcomcnfg.exe) y fui a Propiedades de WSearch, pestaña Seguridad y ahora pudo editar los permisos de seguridad en los permisos de inicio y activación, que se muestran como esta:

A través del grupo de seguridad Todos, mi cuenta de usuario ya tiene permisos de Activación local, pero también se muestran otros 3 SID que no son cuentas de usuario o grupos conocidos, como indica su ícono. Son SID de aplicación y se refieren a Aplicaciones. El error del registro de eventos también decía "... ejecutándose en el contenedor de la aplicación SID no disponible (S-1-15-2-1430448594-2639229838-973813799-439329657-1197984847-4069167804-1277922394).
Ahora, la interfaz de usuario del selector de objetos de Windows no parece permitirle agregar los SID de la aplicación para los objetos principales de seguridad. Entonces, después de hacer clic en Agregar, hice clic en Avanzado... y luego Buscar ahora. Esto mostrará una lista de todos los objetos. Pero la mayoría de ellos eran SID de cuentas. Noté "TODOS LOS PAQUETES DE APLICACIONES" que, como su nombre lo indica, probablemente sea un grupo para todos los paquetes de aplicaciones, así que lo seleccioné. Haga clic en Aceptar en todas partes para agregarlo y luego otorgue permisos de Inicio local y Activación local.

Ahora, al hacer clic en Aceptar y cerrar la interfaz de usuario de Servicios de componentes, el error desaparece del Registro de eventos, lo que significa que el componente WSearch COM ahora tiene los permisos de activación y ejecución local correctos.
Escribí este artículo como una guía general para ayudar a cualquier otra persona a solucionar los errores de DCOM en su Registro de eventos de una manera similar. Todavía me preocupa por qué Windows aún no tiene una herramienta para restaurar fácilmente los permisos correctos a los objetos COM en caso de que se estropeen.