本文介绍简化的 Windows 事件跟踪(ETW)。
原始 KB 数: 2593157
总结
Windows 事件跟踪(ETW)旨在提供组件级日志记录。 如有关事件跟踪的文章中所述,ETW 提供:
用户模式应用程序和内核模式设备驱动程序引发的事件跟踪机制。 此外,ETW 使你能够动态启用和禁用日志记录,从而轻松地在生产环境中执行详细的跟踪,而无需重新启动或应用程序重启。 这样,大型服务器应用程序就可以编写具有最小干扰的事件。
快速概述: 事件提供程序 将事件写入 ETW 会话(可以是任何用户模式应用程序、托管应用程序、驱动程序等)。 写入事件时,ETW 会添加有关生成事件的时间、进程和线程 ID、处理器编号和日志记录线程的 CPU 使用情况数据的详细信息。 事件使用者使用此 信息; 应用程序读取日志文件或侦听会话以获取实时事件并处理它们。
logman 查询提供程序命令的示例输出:
提供程序 GUID
.NET 公共语言运行时 {E13C0D23-CCBC-4E12-931B-D9CC2EEE27E4}
ACPI 驱动程序跟踪提供程序 {DAB01D4D-2D48-477D-B1C3-DAAD0CE6F06B}
Active Directory 域服务:SAM {8E598056-8993-11D2-819E-0000F875A064}
Active Directory:Kerberos 客户端 {BBA3ADD2-C229-4CDB-AE2B-57EB6966B0C4}
Active Directory:NetLogon {F33959B4-DBEC-11D2-895B-00C04F79AB69}
Application-Addon-Event-Provider {A83FA99F-C356-4DED-9FD6-5A5EB8546D68}
ASP.NET 事件 {AFF081FE-0247-4275-9C4E-021F3DC1DA35}
ATA 端口驱动程序跟踪提供程序 {D08BD885-501E-489A-BAC6-B7D24BFE6BBF}
AuthFw NetShell 插件 {935F4AE6-845D-41C6-97FA-380DAD429B72}
BFE 跟踪提供程序 {106B464A-8043-46B1-8CB8-E92A0CD7A560}
BITS 服务跟踪 {4A8AAA94-CFC4-46A7-8E4E-17BC45608F0A}
证书服务客户端 CredentialRoaming 跟踪 {EF4109DC-68FC-45AF-B329-CA2825437209}
证书服务客户端跟踪 {F01B7774-7ED7-401E-8088-B576793D7841}
循环内核会话提供程序 {54DEA73A-ED1F-42A4-AF71-3E63D056F174}
Classpnp 驱动程序跟踪提供程序 {FA8DE7C4-ACDE-4443-9994-C4E2359A9EDB}
Critical Section 跟踪提供程序 {3AC66736-CC59-4CFF-8115-8DF50E39816B}
设备任务枚举器 {0E9E7909-00AA-42CF-9502-2C490471E598}
磁盘类驱动程序跟踪提供程序 {945186BF-3DD6-4F3F-9C8E-9EDD3FC9D558}
下层 IPsec API {94335EB3-79EA-44D5-8EA9-306F49B3A041}
Microsoft下载中心提供了各种实用工具,用于分析 .etl 文件,例如网络监视器 v3.4。 但是,下面的示例脚本不需要安装其中任何脚本。
详细信息
以下脚本将生成 ETL 跟踪;在此示例中,提供程序的数据 - Microsoft-Windows-TerminalServices-RemoteConnectionManager。
@echo off
ECHO These commands will enable tracing:
@echo on
logman create trace admin_wmi -ow -o c:\admin_wmi.etl -p " Microsoft-Windows-TerminalServices-RemoteConnectionManager " 0xffffffffffffffff 0xff -nb 16 16 -bs 1024 -mode 0x2 -max 2048
logman start admin_wmi
@echo off
echo
ECHO Reproduce your issue and enter any key to stop tracing
@echo on
pause
logman stop admin_wmi
logman delete admin_wmi
@echo off
echo Tracing has been captured and saved successfully at c:\admin_wmi.etl
将上述脚本另存为批处理文件(.bat),并使用提升的权限运行该脚本以生成 .etl 文件。
注意
可以修改此脚本,以根据需要为任何提供程序生成跟踪。 可以从 logman 查询提供程序命令获取提供程序名称,如前所述。可以将突出显示的字段替换为任何 事件提供程序,并在几分钟内生成特定于问题的跟踪。
为了分析生成的 .etl 跟踪,请使用内置tracerpt.exe实用工具生成可用于进一步解释的 .evtx 文件。
以下是此命令的示例:
tracerpt c:\admin_wmi.etl -o c:\admin_wmi.etl.evtx -of EVTX