如何以编程方式确定事件ID的描述

时间:2012-06-12 04:24:34

标签: c# event-log

我写了一个实用程序,允许我查看EventLog消息,过滤它们的类型,写入时等等。

我发现自从我购买笔记本电脑以来,在过去的几个月里,我已经有过数千次(给或少几次)以下条目:

Type: Error
Source: WinMgmt
Time Generated: 06/11/2012 20:55:00
Message: The description for Event ID '-1073741814' in Source 'WinMgmt' cannot be found.  The local computer may not have the necessary registry information or message DLL files to display the message, or you may not have permission to access them.  The following information is part of the event:'//./root/CIMV2', 'SELECT * FROM __InstanceModificationEvent WITHIN 60 WHERE TargetInstance ISA "Win32_Processor" AND TargetInstance.LoadPercentage > 99', '0x80041003'
Machine Name: MuleheadedAsteroid

有人知道我如何回应这样一个错误的消息以找到问题的根源吗?

1 个答案:

答案 0 :(得分:1)

你在这里问两个问题。首先,为什么事件日志条目没有正确格式化? (您正在查看邮件的参数,但不是完全格式化的邮件。首先,我们将努力修复邮件。

似乎是一个损坏的注册表,或者一个丢失的消息文件dll。

检查以确保这些注册表项存在,并指向正确的位置:

1)HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ services \ eventlog \ Application \ WinMgmt

Name:  ProviderGuid
Type:  REG_EXPAND_SZ
Value: {1edeee53-0afe-4609-b846-d8c0b2075b1f}

2)HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ WINEVT \ Publishers \ {1edeee53-0afe-4609-b846-d8c0b2075b1f}

存在的值:

Name:  MessageFileName
Type:  REG_EXPAND_SZ
Value: %SystemRoot%\system32\wbem\WinMgmtR.dll

Name:  ResourceFileName
Type:  REG_EXPAND_SZ
Value: %SystemRoot%\system32\wbem\WinMgmtR.dll

3)最后,验证%SystemRoot%\ system32 \ wbem \ WinMgmtR.dll中是否存在WinMgmtR.dll


其次,事件日志试图告诉我们什么。我用Google搜索了错误代码0x80041003。 这立即让我讨论了尝试使用不足的权限查询WMI,特别是知识库文章:

Event ID 10 is logged in the Application log after you install Windows Vista Service Pack 1 or Windows Server 2008

您会注意到MS的示例查询与您的几乎完全相同所以,似乎正在运行并且在没有足够权限的情况下查询WMI。

MS提供了一个脚本来阻止条目出现在知识库文章的解析部分中。