netsh trace

netsh trace 命令允许您捕获详细的网络流量和跟踪事件,为诊断和排除 Windows 系统上的网络问题提供有价值的数据。 它支持一系列用于过滤、导出和分析跟踪数据的选项。

Syntax

netsh trace [convert | correlate | diagnose | dump | export | help | merge | postreset | show | start | ?]
netsh trace convert [input=]tracefilename.etl [output=]filename [dump=]CSV|XML|EVTX|TXT|No [report=]yes|no
                    [overwrite=]yes|no [metadata=]yes|no [tmfpath=]pathname [manpath=]pathname
netsh trace correlate [input=]tracefilename.etl [output=]newtracefilename.etl [filter=]Activity_ID
                      [overwrite=]yes|no [retaincorrelationevents=]yes|no [retainpii=]yes|no
                      [retainglobalevents=]yes|no
netsh trace diagnose [scenario=]<scenarioname> [namedAttribute=]<attributeValue>
                     [saveSessionTrace=]<yes|no> [report=]<yes|no> [capture=]<yes|no>
netsh trace dump
netsh trace export [scenario=]<scenarioname> [file=]<filename>
netsh trace merge
netsh trace postreset
netsh trace show <capturefilterhelp>
                 <globalkeywordsandlevels>
                 <helperclass> [name=]<helperclassname>
                 <interfaces>
                 <provider> [name=]<providerIdOrName>
                 <providerfilerhelp>
                 <providers>
                 <scenario> [name=]<scenarioname>
                 <scenarios>
                 <status>
netsh trace start [sessionname]=<sessionname> [scenario=]<scenario1,scenario2> [globalKeywords=]keywords
                  [globalLevel=]level [[capture=]yes|no] [capturetype=]physical|vmswitch|both
                  [report=]yes|no|disabled [persistent=]yes|no [traceFile=]path\filename
                  [maxSize=]filemaxsize [fileMode=]single|circular|append [overwrite=]yes|no
                  [correlation=]yes|no|disabled [capturefilters] [provider=]providerIdOrName
                  [keywords=]keywordMaskOrSet [level=]level [bufferSize=]<bufferSize>
                  [provider=]provider2IdOrName [providerFilter=]yes|no [keywords=]keyword2MaskOrSet
                  [perfMerge=]yes|no [level=]level2 ...

Parameters

Note

某些命令和参数可能仅在不再受支持的早期版本的 Windows 和 Windows Server 中完全运行。

Command Description
跟踪 convert 将跟踪文件转换为 HTML 报告。

input:指定输入事件跟踪日志 (ETL) 文件。
output:设置输出文件名。 如果未指定,则默认为输入文件名。
dump:选择输出格式: TXT (默认)、CSV、、 XMLEVTXNo(无转储)。
report:如果设置为 yes,则生成 HTML 报告。 默认值为 no
overwrite:如果设置为 yes,则覆盖现有文件。 默认值为 no
metadata:如果设置为 yes,则在输出中包括元数据跟踪。 默认值为 no
tmfpath:提供跟踪消息格式 (TMF) 文件的路径,用于解码 Windows 软件跟踪预处理器 (WPP) 跟踪。
manpath:提供清单文件的路径,用于解码 Windows 事件跟踪 (ETW) 跟踪。
跟踪 correlate 规范化或过滤跟踪文件,生成新的输出文件。 可以按活动 ID (格式 {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}中的 GUID) 进行筛选,以仅包含相关事件。 该命令还可以保留关联事件、个人数据(如数据包捕获事件)和全局事件。

input:指定输入的 ETL 跟踪文件。
output:设置输出文件名和路径。
filter:仅输出与指定活动 GUID 相关的事件。 默认值为无。
overwrite:如果设置为 yes,则覆盖现有文件。 默认值为 no
retaincorrelationevents:如果设置为 yes,则保留相关事件。 默认值为 no
retainpii:如果设置为 yes (默认),则保留包含个人数据的事件。
retainglobalevents:如果设置为 yes (默认值),则保留全局事件。
跟踪 diagnose 启动诊断会话。

scenario:指定诊断方案名称(例如, InternetClient)。
namedAttribute:提供方案的其他详细信息或选项,具体取决于所选方案。
saveSessionTrace:如果设置为 yes,则保存会话中的跟踪数据以供以后分析。 如果 ,则 no不会保存跟踪。 此选项默认为 yes if report=yes
report:如果设置为 yes,则在运行方案后生成诊断报告。 如果(默认),则 no 不创建任何报告。
capture:如果设置为 yes,则在诊断期间捕获网络流量。 如果(默认),则 no 不会捕获流量。
跟踪 dump 创建包含当前上下文配置的脚本。 该脚本可以保存到文件中,并在设置被更改或需要在另一个系统上复制时用于恢复设置。
跟踪 export 将方案导出到 Windows 性能记录器 (WPR) 配置文件。

scenario:指定要导出的跟踪方案的名称。
file:设置导出的 WPR 配置文件的输出文件名和路径。
跟踪 merge 将多个跟踪文件合并为一个,并使用符号和 PerfTrack 元数据丰富输出,以改进分析。
跟踪 postreset 在网络堆栈重置后将全局跟踪设置恢复为默认值。
跟踪 show 显示以下参数的信息:

capturefilterhelp:列出所有受支持的捕获筛选器并提供使用示例。
globalkeywordsandlevels:显示可用的全局关键字和用于配置的跟踪级别。
helperclass:提供有关跟踪中使用的帮助程序类的信息。
interfaces:列出所有可用于跟踪的网络接口。
provider:显示有关特定跟踪提供程序的详细信息。
providerfilterhelp:列出支持的提供程序筛选器并说明其用法。
providers:显示系统上可用的所有跟踪提供程序。
scenario:显示有关特定跟踪方案的详细信息。
scenarios:列出所有可用的跟踪方案。
status:显示当前跟踪配置和会话状态。
跟踪 start 启动跟踪会话。

sessionname:指定跟踪会话的名称。
scenario:指定预定义方案(LANInternetClient等)
globalKeywords:使用 ETW 关键字筛选所有提供程序的事件。
globalLevel:设置全局事件的详细程度:
- 1 (严重):仅关键事件。
- 2 (错误):严重事件和错误事件。
- 3 (警告):严重、错误和警告事件。
- 4 (信息性):添加信息性事件。
- 5 (详细):捕获所有事件,包括详细的调试信息。
capture:是否捕获网络数据包(yesno)。
capturetype:指定数据包捕获类型(physicalvmswitchboth)。
report:跟踪后生成 HTML 报告 (yesnodisabled)。
persistent:在系统重新启动yes 后保持会话运行( 或 no)。
traceFile:跟踪输出的完整路径和文件名。
maxSize:跟踪文件的最大大小(以兆字节为单位)。
fileMode:指定文件写入方式的方法:
- single:所有数据都写入一个文件,最大为指定的文件大小(以兆字节为单位)。
- circular:当文件达到最大大小时覆盖最旧的数据(充当环形缓冲区)。
- append:将新的跟踪数据添加到现有文件的末尾。
overwrite:覆盖现有跟踪文件(yesno)。
correlation:启用事件 (yesnodisabled) 的关联。
capturefilters:过滤捕获的数据包(IP、TCP 端口等)。
provider:按 GUID 或名称指定 ETW 提供程序。
keywords:特定 于提供商的关键字筛选。
level:特定 于提供程序的详细程度。
bufferSize:跟踪缓冲区的大小(以兆字节为单位)。
providerFilter:启用特定 于提供程序的筛选(yesno)。
perfMerge:合并性能数据(yesno)。

某些参数是特定于方案的,如果不相关,可能会被忽略。 如果省略,则使用默认值。 使用 capture=yes 可以快速生成大文件。 fileMode=circular 当达到最大大小时覆盖旧数据。
help? 显示当前上下文中的命令及其描述的列表。

Examples

要将 ETL 日志文件转换为 XML,请运行以下命令:

netsh trace convert input="C:\Logs\mytrace.etl" output="C:\Logs\mytrace.xml"

若要分析多个 ETL 文件之间的数据并将其关联到单个相关文件中,请运行以下命令:

netsh trace correlate input="C:\Logs\trace1.etl,C:\Logs\trace2.etl" output="C:\Logs\correlated_trace.etl"

要将 ETL 导出到文本文件 (),.txt请运行以下命令:

netsh trace export input="C:\Logs\mytrace.etl" output="C:\Logs\mytrace.txt"

要将多个 ETL 文件合并到单个跟踪文件中,请运行以下命令:

netsh trace merge input="C:\Logs\trace1.etl,C:\Logs\trace2.etl" output="C:\Logs\merged_trace.etl"

要列出所有可用于跟踪的网络接口,请运行以下命令:

netsh trace show interfaces

若要启动新的跟踪会话并将日志保存到特定文件路径,请运行以下命令:**

netsh trace start capture=yes tracefile="C:\Logs\networktrace.etl"

See also