在 Windows 中, netsh.exe 可以使用 [從命令提示字元] 來啟用和設定網路追蹤。 本節說明一些可協助解決追蹤問題的 netsh.exe 命令,包括具有新功能的 netsh trace 。
注意
您必須從提升許可權的命令提示字元執行 netsh 命令。
收集痕跡
預先定義的情境是由一組追蹤提供者組成,可啟用以便進行疑難排解。 若要顯示可用的網路相關案例清單,請輸入 netsh 追蹤顯示案例 (netsh 追蹤顯示提供者會列出每個可用的提供者 ,包括與網路無關的提供者)。
當您識別出與問題相關的案例時,您可以看到該案例中包含的所有提供者清單。 例如,若要查看 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 追蹤停止。
使用輸出檔案
停止追蹤時,預設會產生兩個檔案:事件追蹤記錄檔 (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 trace 開始 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 trace start capture = yes ipv4.address = x.x.x.x,其中 x.x.x.x 是 IP 位址,這指令只會擷取來自或發往該特定來源或目的地位址的 ipv4 流量封包。
如需了解如何使用封包過濾的更多資訊,您可以輸入 netsh trace show capturefilterHelp。