使用 Netsh 管理跟踪

在 Windows 中,可以使用 netsh.exe(从命令提示符)启用和配置网络跟踪。 本部分介绍有助于排查跟踪问题的一些 netsh.exe 命令,包括新的 netsh trace 功能。

注意

你必须在提升的命令提示符下运行 netsh 命令。

收集跟踪

方案是预定义的跟踪提供程序集,可以启用这些程序集以进行故障排除。 若要显示可用的网络相关方案的列表,请键入 netsh trace show scenariosnetsh trace show providers 列出了每个可用的提供程序,包括与网络无关的提供程序)。

当你确定与问题相关的方案时,你可以看到该方案中包含的所有提供程序的列表。 例如,若要查看在 InternetClient 方案中启用的所有提供程序,请键入 netsh trace show scenario internetclient

你可以针对给定方案或一组方案中的所有提供程序启动跟踪。 例如,若要对在 InternetClient 方案中启用的所有提供程序启动跟踪,请键入 netsh trace start scenario=internetclient。 若要捕获多个方案的提供程序,你可以指定所有适当的方案,例如 netsh trace start scenario=FileSharing scenario=DirectAccess。 请注意,一次只能启用一个跟踪会话;不能在单独的文件中同时捕获不同提供程序集中的跟踪信息。

你还可以对该特定方案中未包含的其他提供程序启动跟踪。 例如,你可能想要对 WLAN 方案下启用的所有提供程序以及 DHCP 提供程序启动跟踪。 为此,请键入 netsh trace start scenario=wlan provider=Microsoft-Windows-Dhcp-Client

你还可以通过键入后跟提供程序名称的 netsh trace show provider,来查看有关特定提供程序的更多详细信息。

若要查看可用的所有选项和筛选器,你可以键入 netsh trace start /?

若要停止跟踪,请键入 netsh trace stop

使用输出文件

停止跟踪时,系统默认生成两个文件:事件跟踪日志 (ETL) 文件和 .cab 文件。

跟踪事件收集在 ETL 文件中,可以使用网络监视器等工具查看。 默认情况下,ETL 文件将命名为 nettrace.etl,也可以通过在启动跟踪时包括 tracefile=filename.etl 来指定其他名称。

.cab 文件包含有关系统软件和硬件的丰富信息,例如适配器信息、内部版本、操作系统和无线设置。 默认情况下,.cab 文件将命名为 nettrace.cab,除非如上所述指定了其他名称。

此 .cab 文件将包含两个文件,该文件始终具有相同的名称。 Report.etl 是 nettrace.etl 中包含的相同信息的另一个副本。 report.html 文件包含有关跟踪事件的附加信息以及收集的其他信息。 若要接收可用的最详细信息,请在启动跟踪时包括命令 report = yes

使用筛选器减少 ETL 跟踪文件中的数据量

当捕获在很长一段时间内发生时,ETL 跟踪文件可能会变得非常大。 在启用多个提供程序导致高流量的情况下,ETW 缓冲区限制可能会导致删除某些跟踪。 除了这个考虑事项之外,减少 ETL 跟踪文件中的数据量也可以减少需要检查的数据量,从而有助于更轻松地进行故障排除。

Netsh 跟踪筛选器可用于减少 ETL 跟踪文件大小。 这些跟踪筛选器是可以应用于各个提供程序的 ETW 级别和关键字。

若要查看可应用的筛选器列表,请键入 netsh trace start /?

筛选器的示例如下:netsh trace start InternetClient provider=Microsoft-Windows-TCPIP level=5 keywords=ut:ReceivePath,ut:SendPath

在此示例中,级别设置为 5,这意味着将显示最大事件数。 下表显示了可用的设置:

Level 设置 说明
1 严重 将仅显示关键事件。
2 错误 将显示关键事件和错误。
3 警告 将显示关键事件、错误和警告。
4 信息 将显示关键事件、错误、警告和信息性事件。
5 详细 将显示所有事件。

 

关键字 ut:ReceivePathut:SentPath 筛选事件,以仅显示在接收或发送路径上跟踪的事件。 可以通过键入后跟提供程序名称的 netsh trace show provider 来查找特定提供程序的完整关键字列表。 例如,键入 netsh trace show provider Microsoft-Windows-TCPIP 将显示有关 Microsoft-Windows-TCPIP 提供程序的信息,包括关键字列表。

启用数据包捕获时,Netsh 还(通过设置 capture = yes)支持数据包筛选功能(类似于网络监视器)。 数据包筛选可用于捕获跟踪文件中有限数量的数据包。 例如,netsh trace start capture = yes ipv4.address = x.x.x.x(其中 x.x.x.x 是 IP 地址)只捕获具有该特定源或目标地址的 ipv4 流量的数据包。

有关如何使用数据包筛选的其他信息,可以键入 netsh trace show capturefilterHelp