для, например, я хочу запросить для события в соответствии с Приложениями узла и Сервисными Журналами> Microsoft>, Windows> groupPolicy> Операционный, и идентификатор события 5315, и время является текущим временем.
Есть несколько новых особенностей, если вы собираетесь запрашивать события из нового стиля журналов событий Windows.
System.Diagnostics.Eventing.Reader
для чтения новых событий. EventLogQuery
. 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);
}
Вы можете запросить соответствующий журнал событий:
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
имеет тенденцию быть довольно большой.