gpt4 book ai didi

c# - 使用 C# 读取 Windows 事件日志(Source != ProviderName != SourceName)

转载 作者:行者123 更新时间:2023-11-30 16:26:26 25 4
gpt4 key购买 nike

我正在使用 C# 读取 Windows 事件日志,我想从中选择/过滤条目。问题是事件查看器中显示的信息并不总是与我从 c# 获得的数据匹配。

例如:

事件查看器“来源”:“用户配置文件服务”

使用 EventLogEntry 类:属性“Source”:“Microsoft-Windows-User Profiles Service”

使用 EventLogReader 类:属性“ProviderName”:“Microsoft-Windows-User Profiles Service”

使用 WMI:“SourceName”:“Microsoft-Windows-User Profiles Service”

我需要能够读取 EventViewer 中显示的准确信息,我可以从哪里获取这些信息?


正在读取事件日志消息...

当使用 EventLogEntry 类读取 EventLog 消息时,我偶尔会得到以下字符串:

The description for Event ID "xxx" in Source "xxx" cannot be found

同样,这与 EventViewer 中显示的消息不匹配...我尝试使用 EventLogReader.FormatDescription() 方法,它给了我正确的(与 EventViewer 相同)消息,但对于某些条目它只是返回 null,而 EventLogEntry.Message 包含正确的文本。

检索事件消息以获取与事件查看器中显示的消息相同的消息的正确方法是什么?

最佳答案

var eventLog = new EventLog("logName", "machine", "source");
foreach(var entry in eventLog.Entries)
{
}

这是与日志交互的一个相当基本的 swag。如果您需要更深入地过滤该来源,您可以在条目上编写 LINQ 查询。如图here .

至于错误,一个常见原因是无法正确访问相关框上的事件和/或注册表。因为您可以在 EventViewer 中看到有问题的数据,所以我怀疑权限错误的可能性很大。

关于c# - 使用 C# 读取 Windows 事件日志(Source != ProviderName != SourceName),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8821395/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com