Я написал приложение, которое собирает журналы Windows из Linux через пакет Zenoss wmi-client.
Он использует WQL для запроса журнала событий и анализа возвращаемых данных. Моя проблема в том, чтобы найти последнюю запись в журнале.
Я наткнулся на this, который говорит мне использовать столбец NumberOfRecords в таком запросе, как этот
Select NumberOfRecords from Win32_NTEventLogFile Where LogFileName = 'Application'
и используйте возвращаемое значение как наивысшее значение журнала.
Мой вопрос: я слышал, что журнал событий Windows представляет собой кольцевой буфер, то есть он перезаписывает самые старые журналы новыми по мере заполнения журнала. Повлияет ли это на NumberOfRecords, как если бы это произошло, свойство «RecordNumber» событий продолжит увеличиваться, однако фактическое количество записей в журнале событий не изменится (поскольку для каждой записанной записи одна удаляется ).
Может ли кто-нибудь пролить некоторое представление о том, как это на самом деле работает (является ли NumberOfRecords наивысшим RecordNumber или фактическим количеством событий в журнале) и, возможно, предложить решение?
Обновить
Итак, теперь мы знаем, что NumberOfRecords не будет работать сам по себе, потому что журнал событий является кольцевым буфером. Решение MS состоит в том, чтобы получить самую старую запись и добавить ее в NumberOfRecords, чтобы получить самую последнюю запись.
Это возможно через WinAPI, но я звоню удаленно из Linux. Кто-нибудь знает, как я могу добиться этого в моем сценарии?
Спасибо