使用 Netsh 來管理追蹤
在 Windows 中, netsh.exe
可以使用 [從命令提示字元] 來啟用和設定網路追蹤。 本節說明一些 netsh.exe
有助於疑難解答追蹤問題的命令,包括新功能 netsh trace
。
注意
您必須從提升許可權的命令提示字元執行 netsh
命令。
收集追蹤
案例是預先定義的追蹤提供者集合,可啟用疑難解答。 若要顯示可用的網路相關案例清單,請輸入 netsh 追蹤顯示案例 (netsh 追蹤顯示提供者會列出每個可用的提供者 ,包括與網路無關的提供者)。
當您識別出與問題相關的案例時,您可以看到該案例中包含的所有提供者清單。 例如,若要查看 InternetClient 案例下啟用的所有提供者,請輸入 netsh 追蹤顯示案例 internetclient。
您可以在指定的案例或一組案例中啟動所有提供者的追蹤。 例如,若要針對在 InternetClient 案例下啟用的所有提供者啟動追蹤,請輸入 netsh trace start scenario=internetclient。 若要擷取多個案例的提供者,您可以指定所有適當的案例,例如 netsh 追蹤啟動案例=FileSharing 案例=DirectAccess。 請注意,一次只能啟用一個追蹤會話;無法同時從不同檔案中的不同提供者集合擷取追蹤資訊。
您也可以針對未包含在該特定案例中的其他提供者啟動追蹤。 例如,您可能想要針對 WLAN 案例下啟用的所有提供者,以及 DHCP 提供者啟動追蹤。 若要這樣做,請輸入 netsh 追蹤啟動案例=wlan provider=Microsoft-Windows-Dhcp-Client。
您也可以輸入 netsh 追蹤顯示提供者,後面接著提供者名稱,以查看特定提供者 的詳細數據。
若要查看所有可用的選項和篩選,您可以輸入 netsh 追蹤 start /?。
若要停止追蹤,請輸入 netsh 追蹤停止。
使用輸出檔案
停止追蹤時,預設會產生兩個檔案:事件追蹤記錄檔 (ETL) 檔案和.cab檔案。
追蹤事件會收集在 ETL 檔案中,您可以使用網路監視器等工具來檢視。 ETL 檔案預設會命名為 nettrace.etl,或者您可以在啟動追蹤時加入 tracefile=filename.etl 來指定不同的名稱。
.cab檔案包含系統上軟體和硬體的豐富資訊,例如適配卡資訊、組建、操作系統和無線設定。 除非如上所示指定其他名稱,否則.cab檔案預設會命名為 nettrace.cab。
這個.cab檔案將包含兩個檔案,一律具有相同的名稱。 Report.etl 是 nettrace.etl 中包含的相同資訊的另一個複本。 report.html檔案包含追蹤事件的其他資訊,以及收集的其他資訊。 若要接收最可用的詳細數據,請在啟動追蹤時包含命令 報表 = 是 。
使用篩選來減少 ETL 追蹤檔案中的數據量
長時間發生擷取時,ETL 追蹤檔案可能會變得非常大。 在啟用多個提供者,導致高流量的情況下,ETW 緩衝區條件約束可能會導致卸除某些追蹤。 除了此考慮之外,減少 ETL 追蹤檔案中的數據量,有助於藉由減少要檢閱的數據量,更輕鬆地進行疑難解答。
Netsh 追蹤篩選可用來減少 ETL 追蹤檔案大小。 這些追蹤篩選條件是可以套用至個別提供者的 ETW 層級和關鍵詞。
若要查看可套用的篩選清單,請輸入 netsh 追蹤啟動 /?
篩選的範例是 netsh 追蹤啟動 InternetClient provider=Microsoft-Windows-TCPIP level=5 keywords=ut:ReceivePath,ut:SendPath。
在此範例中,層級會設定為5,這表示會顯示事件數目上限。 下表顯示可用的設定:
層級 | 設定 | 描述 |
---|---|---|
1 | 重大 | 只會顯示重大事件。 |
2 | 錯誤 | 將會顯示重大事件和錯誤。 |
3 | 警告 | 將會顯示重大事件、錯誤和警告。 |
4 | 資訊 | 將會顯示重大事件、錯誤、警告和參考性事件。 |
5 | 詳細資訊 | 所有事件都會顯示。 |
關鍵詞 ut:ReceivePath 和 ut:SentPath 會篩選事件,只顯示接收或傳送路徑上追蹤的事件。 輸入 netsh 追蹤顯示提供者,後面接著提供者名稱,即可找到 特定提供者 的完整關鍵詞清單。 例如,輸入 netsh 追蹤顯示提供者Microsoft-Windows-TCPIP 會顯示Microsoft-Windows-TCPIP 提供者的相關信息,包括關鍵詞清單。
當封包擷取開啟時,Netsh也支援封包篩選功能(類似於網路監視器)(藉由設定 擷取 = 是)。 封包篩選可用來擷取追蹤檔案中的有限封包數目。 例如, netsh 追蹤開始擷取 = 是 ipv4.address = x.x.x.x ,其中 x.x.x.x 是 IP 位址,只會擷取具有該特定來源或目的地位址之 ipv4 流量的封包。
如需如何使用封包篩選的其他資訊,您可以輸入 netsh 追蹤 show capturefilterHelp。