Установление потребителя трассировки событий в реальном времени в Windows 10
Я пытаюсь использовать такие программы, как "Анализатор сообщений" и "TraceView", чтобы получать события от поставщиков "Microsoft-Windows-Security-Auditing" или "Microsoft-Windows-Eventlog", но мне не повезло с получением каких-либо событий.
Что я сделал:
- Я тестировал эти программы в Windows 10 и 7
- программное обеспечение выполняется от имени администратора
- также как системный аккаунт
Другие наблюдения и вклад:
Я мог получить другие события, например, события ядра или события NDIS, но не упомянутые провайдеры, которые я специально настроил для получения.
Мне интересен подход, который использует упомянутое программное обеспечение (создание сеанса трассировки в реальном времени), и нет другого решения, такого как запрос событий...
ОБНОВЛЕНИЕ 1
GUID провайдера, который я использовал в упомянутом программном обеспечении
Microsoft-Windows-Security-Auditing: {54849625-5478-4994-A5BA-3E3B0328C30D}
Microsoft-Windows-Eventlog: {fc65ddd8-d6ef-4962-83d5-6e5cfe9ce148}
ОБНОВЛЕНИЕ 2
Я также провел больше исследований с EventLogChannelsView от NirSoft и некоторыми другими инструментами, я понял, что есть некоторые Каналы и Провайдеры / Издатели. Поставщики уведомляют любых потребителей, которые хотят знать о новых событиях на каналах.
Интересно, что EventLogChannelsView не перечислял имена некоторых провайдеров, что, вероятно, означает, что они вообще не активны (например, тот, который я упомянул). А также есть каналы, у которых нет провайдера.
Мне было любопытно, как Event Viewer узнает о новых событиях, потому что он мгновенно показывает сообщение "Новые события доступны". Что ж, я обнаружил, что Event Viewer использует API EvtSubscribe для получения событий на каналах вместо провайдеров.
Я не знаю, почему такие программы, как "Message Analyzer" и "TraceView", которые обе созданы Microsoft, очень сильно ошарашены состоянием провайдеров.
1 ответ
Предупреждение. В следующих методах используются некоторые инструменты, для которых требуется разрешение администратора. Пожалуйста, используйте эти инструменты с некоторыми предварительными знаниями о трассировке событий в Windows и обо всех связанных опциях.
Для записи журналов событий в реальном времени я использую инструменты из WDK и SDK. Вы можете найти эти программы в %ProgramFiles(x86)%\Windows Kits\10\bin\<SDK-Version>\<bitness>
дорожка. Вот два метода:
С интерфейсом командной строки: Запустите все команды от имени администратора. Поместите GUID в команду, как показано ниже.
- Начните сеанс в реальном времени без сохранения файла ETL:
tracelog.exe -start MyTraceSession -rt -guid #{place-guid-here}
- Отображение журналов событий в режиме реального времени:
tracefmt.exe -displayonly -rt MyTraceSession
- Остановить сессию:
tracelog.exe -stop MyTraceSession
- Начните сеанс в реальном времени без сохранения файла ETL:
Используемые варианты:
Usage: tracelog [actions] [options] | [-h | -help | -?]
-start <LoggerName> Starts the <LoggerName> trace session.
-stop <LoggerName> Stops the <LoggerName> trace session.
-guid #<guid> Enable tracing for a provider by guid.
-rt Enable tracing in real time mode.
Usage: tracefmt [<EtlFile>|-rt [<SessionName>]] [-tmf [<TMFFiles>]|-p <TMFPath>|-pdb <PdbPath>] [Options]
-rt <SessionName> - Format messages from the named real-time trace session.
-displayonly - Print formatted traces messages only to console (no output file).
- С графическим интерфейсом пользователя: Дважды щелкните по программе TraceView, чтобы открыть. Выполните следующие действия: Файл> Создать новый сеанс журнала> GUID с ручным вводом элемента управления> ОК> Авто> Далее> Отображение в реальном времени> Готово.
Щелкните правой кнопкой мыши на имени сеанса в окне TraceView, чтобы остановить или удалить сеанс.
Дальнейшие чтения:
Чтобы узнать, как и как эти инструменты работают с Windows API, см. Мой проект с открытым исходным кодом TraceEvent в GitHub.