Как прочитать журнал событий с другого компьютера с помощью класса eventlog?
Я пытаюсь разобрать файлы. evt с помощью
EventLog
класс. Я могу разобрать любой журнал в главном каталоге компьютера, то есть все журналы, созданные ПК. Однако мне нужно иметь возможность читать .evt с разных компьютеров. Как я могу это сделать?для сравнения:
Класс EventLog
Класс EventLogEntry
Класс EventLogEntryCollection
public static class EventLogClassContainer { public static string EvlLocation { get; set; } = ""; public static string EvlName { get; set; } = "Application"; public static string evlLocationManual = "%Test.evt%"; public static List<EventLogEntry> _LogEntries { get; private set; } public static void ReadEventLog() { EventLog evlLog = new EventLog(EvlName, "."); EventLogEntryCollection eventLogEntries = evlLog.Entries; int eventLogEntryCount = eventLogEntries.Count; foreach (EventLogEntry entry in evlLog.Entries) { //entry.Message _LogEntries = eventLogEntries.Cast<EventLogEntry>().ToList(); } } public static void SetEvlName(string evlLocation) { Parser.FileNameFinder(evlLocation, 3); } public static void RELSystemTest() { EventLog evlLog = new EventLog("Application", "."); EventLogEntryCollection eventLogEntries = evlLog.Entries; int eventLogEntryCount = eventLogEntries.Count; _LogEntries = eventLogEntries.Cast<EventLogEntry>().ToList(); } public static void ParseTest() { evlLocationManual = "K:\\Event Log\\Test\\Test.evt"; ReadEventLog(); } public static void setLogLocation(string input) { EvlLocation = input; } } public static class EventLogEntryCollection_Container { public static void testCollection() { string myLogName = "_log"; // Create an EventLog instance and assign its source. EventLog _log = new EventLog(); _log.Source = "%Program Files (x86)%\\EventLogParser\\ImportedEventLogs\\" + varBank.logInput; // Write an informational entry to the event log. _log.WriteEntry("Successfully created a new Entry in the Log"); _log.Close(); // Create a new EventLog object. EventLog myEventLog1 = new EventLog(); myEventLog1.Log = myLogName; // Obtain the Log Entries of "_log". EventLogEntryCollection _logCollection = _log.Entries; _log.Close(); // Copy the EventLog entries to Array of type EventLogEntry. EventLogEntry[] _logEntryArray = new EventLogEntry[_logCollection.Count]; _logCollection.CopyTo(_logEntryArray, 0); IEnumerator myEnumerator = _logEntryArray.GetEnumerator(); while (myEnumerator.MoveNext()) { EventLogEntry myEventLogEntry = (EventLogEntry)myEnumerator.Current; } } }
Что я уже пробовал:
Я перепробовал все три версии
EventLog
контейнер, но я не могу установить местоположение журнала. В основном это связано с тем, что расположение журнала не может содержать //.
Tomas Takac
Вы пытались указать имя машины int конструктор EventLog[^] или через Журнал событий.Свойство MachineName[^]?
ShadowSMS
Я не знаю, как поможет ввод имени машины? Даже если у меня есть имя машины, с которой ведется журнал, я все равно не могу направить его в сам файл? Или, по крайней мере, я не знаю, как бы я это сделал.
ShadowSMS
Есть ли какой-нибудь способ импортировать файл .evt в каталог событий моих компьютеров?
Garth J Lancaster
Я думаю, что цель состояла в том, чтобы считывать информацию непосредственно из журналов событий удаленной машины, а не из экспортированных файлов. evt.)
Garth J Lancaster
очевидно, нет