在 Windows 10 中建立实时事件跟踪消费者

在 Windows 10 中建立实时事件跟踪消费者

我正在尝试使用“Message Analyzer”和“TraceView”之类的软件从“Microsoft-Windows-Security-Auditing”或“Microsoft-Windows-Eventlog”提供程序接收事件,但是我没有收到任何事件。

我做了什么:

  • 我在 Windows 10 和 Windows 7 中测试了这些软件
  • 以管理员身份执行的软件
  • 也可以作为系统帐户

其他观察和意见:

  • 我可以获取其他事件,例如内核事件或 NDIS 事件,但无法获取我专门配置接收的所提及的提供程序。

  • 我对所提到的软件使用的方法(进行实时跟踪会话)很感兴趣,而没有其他解决方案,例如查询事件......

更新 1

我在上述软件中使用的提供商 GUID

Microsoft-Windows-Security-Auditing: {54849625-5478-4994-A5BA-3E3B0328C30D}
Microsoft-Windows-Eventlog: {fc65ddd8-d6ef-4962-83d5-6e5cfe9ce148}

更新2

我也做了更多的调查事件日志通道视图从 NirSoft 和其他一些工具中,我意识到有一些渠道和提供商/发布者。提供商会通知任何想要了解渠道上新事件的消费者。

有趣的是,EventLogChannelsView 甚至没有列出某些提供商的名称,这可能意味着它们根本不活跃(就像我提到的那样)。而且还有一些频道没有任何提供商。

我很好奇事件查看器如何发现新事件,因为它会立即显示“有新事件可用”消息。我发现事件查看器使用 EvtSubscribe API 接收频道而不是提供商上的事件。

我不知道为什么像微软创建的“Message Analyzer”和“TraceView”这样的软件对提供程序的状态表现得非常麻木。

答案1

警告:以下方法使用一些需要管理权限的工具。请在使用这些工具之前先了解 Windows 中的事件跟踪及其所有相关选项。

为了捕获实时事件日志,我使用的工具微软开发工具包软件开发工具包。您可以在%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

使用的选项:

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_实时_会话_窗口

在 TraceView 窗口中右键单击会话名称可以停止或删除该会话。

进一步阅读:

要了解这些工具与 Windows API 的配合使用,请参阅我的开源项目追踪事件在 GitHub 上。

相关内容