Necesito ayuda para resolver los recursos del "Proveedor" no accesibles cuando intento crear un proveedor de eventos de Windows. Creo mi archivo de manifiesto con la utilidad ManGen y llamo mi archivo '.exe' como mi mensaje y archivo de recursos. Recopilo el archivo '.rc' con mi archivo exe y se genera el archivo expected..res. Sin embargo, cuando ejecuto wevtutil sigo recibiendo la advertencia 'recursos no accesibles'ADVERTENCIA: no se puede acceder a los recursos del proveedor ejecutando wevtutil
Respuesta
Al instalar el manifiesto (por ejemplo wevtutil im manifest.man
), debería ver una especie de advertencia si los recursos no están disponibles:
**** Warning: Publisher EventsProvider resources are not accessible.
Para obtener información adicional, intente recuperar información sobre uno de los editores. Por ejemplo:
c:\...> wevtutil gp <EventProviderName>
Failed to open metadata for publisher <EventProviderName>. Access denied.
Ok, lo anterior sugiere un problema de permisos, por lo que vamos a hacer la ruta de acceso y vuelva a intentarlo:
c:\...> wevtutil gp <EventProviderName>
Failed to open metadata for publisher <EventProviderName>. The specified resource
type cannot be found in the image file.
Por lo anterior, parece que el recurso no llegó compilado correctamente
Si va File->Open
con VS y abre su exe en el visor de recursos, debería poder ver los recursos compilados. Al menos debe tener una entrada "WEVT_TEMPLATE".
Para el recurso a compilarse correctamente csc
, necesita ser aprobado el recurso de la siguiente manera:
csc /win32res:<Resource.res>
El DLL se está registrando tiene que tener un determinado conjunto de permisos de archivo. Sospecho que el servicio de registro de eventos se ejecuta bajo la cuenta de "servicio local". Entonces, solo dar derechos de acceso al SISTEMA no es suficiente. Lo resolví por problemas al darle al grupo "USUARIOS" en mi PC "leer & ejecutar" privilegios.
Me encontré con un desagradable problema que me llevó un día rastrear. Compartí la carpeta de trabajo de mi proyecto y luego la compartí. Por alguna razón, esto eliminó los privilegios de acceso de "USUARIOS". Creo que esta es la razón por la que las muestras de seguimiento de eventos en el SDK de Windows copian todos los dlls en una carpeta especial bajo la unidad C e instalan el proveedor desde allí. Cuando crea carpetas en la unidad C, el grupo de USUARIOS tiene acceso automático.
¡Esto ayudó! Completamente ignorado la configuración de seguridad! :) –
Tuve exactamente el mismo error, pero la solución fue ligeramente diferente a las otras respuestas que ya se han publicado. Tuve que abrir el archivo de manifiesto y cambiar los atributos resourceFileName
y messageFileName
para usar rutas absolutas al ejecutable de la aplicación.
Esta solución es una aplicación si ejecuta 'wevtutil gp
Si los nombres de ruta en el archivo de manifiesto no coinciden con el dll, puede usar las opciones/mf y/rf con rutas absolutas a la ubicación real. También debe asegurarse de que la ubicación también haya otorgado privilegios al grupo de seguridad MACHINE_NAME \ Users. –
Mientras trabajaba en esto para Chrome, seguí recibiendo este error y la única buena solución fue usar/mf y/rf. No entiendo por qué llegué al fracaso (ya funcionó para mí), pero está funcionando ahora. Es curioso que wevtutil.exe no muestre señales de lectura alguna vez desde DLL, cuando rastrea con procmon. Esto hace que investigar esta advertencia sea muy difícil. –
Experimenté el problema similar.La solución es
- uso de rutas absolutas, siempre que sea posible y se mantenga alejado de las rutas relativas
- asegurarse de que todo el mundo tiene acceso de lectura a manifestar archivos
Si sus archivos de manifiesto son llamados manifest.man
y manifest.dll
, a continuación,
conceder acceso de lectura a todos
usoicacls %~dp0\manifest.* /t /grant Everyone:R
rutas absolutas para instalar (
%~dp0
variable podría ser utilizado si está utilizando un archivo por lotes)wevtutil im %~dp0\manifest.man /rf:"%~dp0\manifest.dll" /mf:"%~dp0\manifest.dll"
- 1. ¿Cómo acceder a los recursos del complemento QuickLook?
- 2. Qt cómo acceder a los recursos
- 3. Acceder a los recursos de JAR
- 4. ¿Cómo acceder a los recursos de prueba?
- 5. "ADVERTENCIA: No se puede asignar en masa los atributos protegidos"
- 6. no puede interpretar Advertencia del compilador
- 7. ¿Se puede acceder a los datos antiguos en CouchDB?
- 8. No se puede acceder campo no estático
- 9. C# no se puede acceder a un objeto eliminado
- 10. No se puede acceder a la clase interna en bean
- 11. FileSystemWatcher No se puede acceder a la unidad de red
- 12. Ruby no puede acceder a la variable fuera del método?
- 13. No se puede acceder a attr_accessor variables definidas
- 14. ¿Cómo acceder a los recursos en el archivo JAR?
- 15. Windows Search sql: no se puede acceder a System.Search.QueryFocusedSummary
- 16. rutas relativas para acceder a los recursos de rieles
- 17. No se puede acceder al archivo - WebClient.DownloadFile
- 18. No se puede acceder miembro protegido 'object.MemberwiseClone()'
- 19. VBScript & Access MDB - 800A0E7A - "El proveedor no se puede encontrar. Puede que no esté instalado correctamente"
- 20. ¿Se puede acceder a IEnumerable a medida que se devuelve?
- 21. Forma de acceder a los archivos de recursos en python
- 22. No se puede acceder a jarfile ./lib/proguardgui.jar
- 23. org.hibernate.HibernateException: no se puede acceder a la secuencia de lob
- 24. No se puede acceder a la función variable global
- 25. No se puede acceder a tablas temporales desde una función
- 26. No se puede acceder a android/drawable Icon-Resource
- 27. System.ObjectDisposedException: no se puede acceder a un Stream cerrado
- 28. Fatal error: No se puede acceder a la propiedad vacía
- 29. MemoryStream - No se puede acceder a un Stream cerrado
- 30. No se puede encontrar el informe en los recursos del manifiesto - Informe de Crystal/C#
muy útil para diagnosticar el error subyacente. –