Получение списка событий из журнала Windows

Макрос создаёт файл Excel, и выводит в него 2000 последних событий из журнала Windows:

 

Sub NTLogEvent()
    ' © 2022 ExcelVBA.ru
    Dim i&, sh As Worksheet
    Set sh = Workbooks.Add.Worksheets(1) ' создаём новый файл под вывод данных
    Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2")
    Set colLoggedEvents = objWMIService.ExecQuery("Select * from Win32_NTLogEvent " & "Where Logfile = 'System'")
    ' выводим заголовок таблицы
    sh.Range("a1").Resize(, 9).Value = Array("Category", _
        "Computer Name", "Event Code", _
        "Record Number", "Source Name", _
        "Time Written", "Event Type", "User", "Message")
 
   Const LIMIT& = 2000 ' ограничение для количества записей
    For Each objEvent In colLoggedEvents ' перебираем записи журнала Windows
        Range("a" & Rows.Count).End(xlUp).Offset(1).Resize(, 9).Value = Array(objEvent.Category, _
        objEvent.ComputerName, objEvent.EventCode, objEvent.RecordNumber, objEvent.SourceName, _
        objEvent.TimeWritten, objEvent.Type, objEvent.User, objEvent.Message)
        i = i + 1: If i > LIMIT& Then Exit For
    Next
    sh.UsedRange.EntireColumn.AutoFit ' автоподбор ширины столбцов
End Sub

 

Пример результата — на скриншоте:

Комментарии

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".

Всё это можно сделать, правильно задавая параметры запроса после Where
Как именно - можно поискать в справке по WMI

Можно ли получить Forwarded Events? Простая смена в строке:
Where LogFile =
Дает результаты если менять только на другие, на это не работает.

А как можно установить фильтр для Event Code и для даты, чтоб обрабатывал только сообщения с кодом 4740 и за промежуток времени в 24 часа с момента запроса? Спасибо.

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
CAPTCHA
Подтвердите, пожалуйста, что вы - человек:
  _____          _               ____    ____  
|__ / __ _ / | _ __ ___ | _ \ | _ \
/ / / _` | | | | '_ ` _ \ | |_) | | | | |
/ /_ | (_| | | | | | | | | | | __/ | |_| |
/____| \__, | |_| |_| |_| |_| |_| |____/
|___/
Введите код, изображенный в стиле ASCII-арт.

Не получается применить макрос? Не удаётся изменить код под свои нужды?

Оформите заказ у нас на сайте, не забыв прикрепить примеры файлов, и описать, что и как должно работать.