gpt4 book ai didi

c# - 如何使用 EventLogQuery 查询 Eventdata?

转载 作者:行者123 更新时间:2023-11-30 17:43:00 24 4
gpt4 key购买 nike

我试图通过查看安全事件日志来确定机器的最频繁用户。我正在考虑使用 4624 事件 ID,但我似乎无法弄清楚如何从查询中的 EventData 添加任何内容。我可以从 4624 事件中获取标准数据,但我要查询的是登录类型也为 7 的事件,然后能够读取目标用户名详细信息。

谢谢!

            string query = @"*[System/EventID=4624]";

EventLogQuery eventsQuery = new EventLogQuery("Security", PathType.LogName, query);

try
{
EventLogReader logReader = new EventLogReader(eventsQuery);

for (EventRecord eventdetail = logReader.ReadEvent(); eventdetail != null; eventdetail = logReader.ReadEvent())
{
Console.WriteLine(eventdetail.ProcessId);
}
}
catch (EventLogNotFoundException)
{
Console.WriteLine("Error while reading the event logs");
return;
}

最佳答案

试试这个:

string query = @
"*[EventData[Data[@Name='LogonType']='7'] and System[(EventID='4624')]]";

EventLogQuery eventsQuery = new EventLogQuery("Security", PathType.LogName, query);

try {
EventLogReader logReader = new EventLogReader(eventsQuery);

for (EventRecord eventdetail = logReader.ReadEvent(); eventdetail != null; eventdetail = logReader.ReadEvent()) {
string description = eventdetail.FormatDescription();
string usernametemp = description.Substring(description.IndexOf("Account Name:") + ("Account Name:").Length + 2);
string username = usernametemp.Substring(0, usernametemp.IndexOf("\r"));
}
} catch (EventLogNotFoundException) {
Console.WriteLine("Error while reading the event logs");
return;
}

整理您的查询,并使用说明找到“帐户名称”字段。希望这能回答您的问题。您可以应用该拆分/子字符串方法来真正找到该描述变量中的任何内容。它只是一个巨大的字符串 - 选择日志时您在事件日志窗口中看到的文本。

关于c# - 如何使用 EventLogQuery 查询 Eventdata?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31507803/

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