唯一标识 C# 中的事件日志条目

发布于 2024-12-01 01:44:05 字数 282 浏览 1 评论 0原文

作为背景,我试图将多台计算机的 Windows 安全事件日志条目合并到一个 SQL 表中,以便我可以报告它们。这一切都可以在 C# 中实现。

但我需要一种方法来更有效地确定我以前是否见过此事件,这样我就不必对数据库进行复杂的查找来查看我以前是否见过每个条目。

由于可以一次生成多个事件,因此到目前为止,我见过的避免重复的唯一方法是检查事件 ID、生成时间、计算机名称以及某些情况下的参数。

.Net Framework 是否公开了我可以用来简化此过程的任何形式的唯一标识符?

提前致谢

By way of background I am trying to consolidate windows security event log entries from a number of machines into a single SQL Table so I can report on them. This all works in C#.

But I need a way to more efficiently determine if I have seen this event before so I don't have to do a complex lookup on my database to see if I have seen every entry before.

Because multiple events can be generated at once, the only way I have seen so far to avoid duplicates is to check for the Event ID, Time Generated, Machine Name and in some cases parameters.

Does the .Net Framework expose any form of unique identifier I could use to simplify this process?

Thanks in advance

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

仅此而已 2024-12-08 01:44:05

我不确定您使用的是什么 C# 方法,但您可以获得可以使用的记录号(例如计算机+日志+记录号)。我知道您可以通过 ManagementObjectSearcher(又名 WMI)获取 C# 中的记录号,不确定其他 API。

您还可以通过 win32 API 获取记录号:

旧 API:EVENTLOGRECORD 结构< /a>

新 API:EventRecordID (SystemPropertiesType) 元素

I'm not sure what C# method you're using, but you can get the record number which you could use (e.g. computer + log + record_number). I know you can get to the record number in C# via the ManagementObjectSearcher (aka WMI), not sure about the other APIs.

You can also get to the record number via the win32 APIs:

Old API: EVENTLOGRECORD Structure

New API: EventRecordID (SystemPropertiesType) Element

柳絮泡泡 2024-12-08 01:44:05

好的,在大家的帮助下解决了这个问题。获取时间戳、事件 ID 和计算机名称,然后创建其 MD5 哈希值。简单且易于索引。性能也有了很大的提升。

OK, solved it with all your help. Take the Timestamp, Event ID and Machine Name, then create an MD5 Hash of that. Simple and easily indexed. Performance is up a long way too.

戴着白色围巾的女孩 2024-12-08 01:44:05

不幸的是,您唯一能做的就是采用计算机、事件源、事件 ID 和时间戳的组合密钥进行唯一匹配。 AFAIK,事件框架中没有全局唯一的 ID。

Unfortunately the only thing you can do is take a combined key of the computer, event source, event id and timestamp for uniquely matching. There is no globally unique ID in the event framework, AFAIK.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文