例如,我想查询节点“应用程序和服务日志”下的事件>微软> Windows> groupPolicy>操作,事件ID为5315,时间为当前时间。
答案 0 :(得分:19)
如果您要从新样式的Windows EventLogs查询事件,则会有一些新的扭曲。
System.Diagnostics.Eventing.Reader
命名空间中的类来阅读新事件。EventLogQuery
definition的msdn。EventReaders
AD组中包含的用户。此示例显示了一些新的访问方法,欢呼。
string eventID = "5312";
string LogSource = "Microsoft-Windows-GroupPolicy/Operational";
string sQuery = "*[System/EventID=" + eventID + "]";
var elQuery = new EventLogQuery(LogSource, PathType.LogName, sQuery);
var elReader = new System.Diagnostics.Eventing.Reader.EventLogReader(elQuery);
List<EventRecord> eventList = new List<EventRecord>();
for (EventRecord eventInstance = elReader.ReadEvent();
null != eventInstance; eventInstance = elReader.ReadEvent())
{
//Access event properties here:
//eventInstance.LogName;
//eventInstance.ProviderName;
eventList.Add(eventInstance);
}
答案 1 :(得分:11)
您可以查询有问题的事件日志:
var sourceName = "MySource";
var el = new EventLog("Application");
var latestEntryTime = (from entry in el.Entries.Cast<EventLogEntry>()
where entry.Source == sourceName
&& // put other where clauses here...
orderby entry.TimeWritten descending
select entry).First();
但是,请注意,此方法缓慢,因为Entries
集合往往非常大。