首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >警告无法访问运行wevtutil的-Provider资源

警告无法访问运行wevtutil的-Provider资源
EN

Stack Overflow用户
提问于 2012-02-10 02:34:02
回答 4查看 7.7K关注 0票数 14

在尝试创建windows事件提供程序时,我需要帮助解决“提供者”资源不可访问的问题。我使用ManGen实用程序创建清单文件,并将“.exe”文件命名为消息和资源文件。我使用可执行文件编译“.rc”文件,并生成预期的“.res”文件。但是,当我运行wevtutil时,我一直收到“资源不可访问”的警告。

EN

回答 4

Stack Overflow用户

发布于 2012-03-07 02:59:59

当您安装您的清单(例如wevtutil im manifest.man)时,如果资源不可用,您应该会看到某种警告:

代码语言:javascript
复制
**** Warning: Publisher EventsProvider resources are not accessible.

要获取一些其他信息,请尝试检索其中一个发布者的信息。例如:

代码语言:javascript
复制
c:\...> wevtutil gp <EventProviderName>
Failed to open metadata for publisher <EventProviderName>. Access denied.

好的,上面的提示是权限问题,所以让我让路径可访问,然后重试:

代码语言:javascript
复制
c:\...> wevtutil gp <EventProviderName>
Failed to open metadata for publisher <EventProviderName>. The specified resource
type cannot be found in the image file.

对于上面的情况,看起来资源没有被正确编译。

如果您使用VS进行File->Open,并在资源查看器中打开您的exe,您应该能够看到编译后的资源。您至少应该有一个"WEVT_TEMPLATE“条目。

为了正确编译资源,需要按如下方式向csc传递资源:

代码语言:javascript
复制
csc /win32res:<Resource.res>
票数 14
EN

Stack Overflow用户

发布于 2012-10-27 00:14:42

您要注册的dll需要具有一组特定的文件权限。我怀疑事件日志服务是在“本地服务”帐户下运行的。因此,仅仅给予系统访问权限是不够的。我通过在我的PC上给“用户”组“读和执行”的特权来解决问题。

我遇到了一个严重的问题,花了一天的时间才找到。我共享了我的项目工作文件夹,然后又取消了共享。由于某些原因,这删除了“用户”访问权限。我认为这就是windows SDK中的事件跟踪示例将所有all复制到C驱动器下的一个特殊文件夹并从那里安装提供程序的原因。当您在C盘下创建文件夹时,USERS组将自动获得访问权限。

票数 12
EN

Stack Overflow用户

发布于 2014-04-15 21:16:13

我犯了完全相同的错误,但解决方案与已经发布的其他答案略有不同。我必须打开清单文件并更改resourceFileNamemessageFileName属性,以使用应用程序可执行文件的绝对路径

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9216675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档