Netsh を使用してトレースを管理する
Windows では、(コマンド プロンプトから) netsh.exe
を使用することで、ネットワーク トレースの構成と有効化を行うことができます。 このセクションでは、新しい netsh trace
機能など、トレースの問題のトラブルシューティングに役立つ netsh.exe
コマンドについて説明します。
Note
netsh
コマンドは、管理者特権のコマンド プロンプトから実行する必要があります。
トレースの収集
シナリオは、トラブルシューティングのために有効にできるトレース プロバイダーの定義済みセットです。 利用可能なネットワーク関連のシナリオの一覧を表示するには、「netsh trace show scenarios」と入力します (「netsh trace show providers」では、ネットワーク関連でないプロバイダーも含め、利用可能なすべてのプロバイダーが一覧表示されます)。
問題に関連しそうなシナリオを特定したら、そのシナリオに含まれるすべてのプロバイダーの一覧を確認できます。 たとえば、InternetClient シナリオで有効になっているすべてのプロバイダーを表示するには、「netsh trace show scenario internetclient」と入力します。
特定のシナリオまたはシナリオ セット内で、すべてのプロバイダーのトレースを開始できます。 たとえば、InternetClient シナリオで有効になっているすべてのプロバイダーのトレースを開始するには、「netsh trace start situation=internetclient」と入力します。 複数のシナリオのプロバイダーをキャプチャするには、「netsh trace start scenario=FileSharing scene=DirectAccess」のように、適切なシナリオをすべて指定することもできます。 一度に有効にできるトレース セッションは 1 つだけであることに注意してください。異なるプロバイダー セットに関するトレース情報を別々のファイルに同時にキャプチャすることはできません。
特定のシナリオに含まれていない別のプロバイダーのトレースを開始することもできます。 たとえば、WLAN シナリオで有効になっているすべてのプロバイダーと DHCP プロバイダーのトレースを開始するとします。 これを行うには、「netsh trace start scenario=wlan provider=Microsoft-Windows-Dhcp-Client」と入力します。
また、「netsh trace show provider」に続けてプロバイダー名を入力すると、特定のプロバイダーに関する詳細情報を表示することもできます。
利用可能なすべてのオプションとフィルターを表示するには、「netsh trace start /?」と入力します。
トレースを停止するには、「netsh trace stop」と入力します。
出力ファイルを使用する
トレースが停止されると、既定でイベント トレース ログ (ETL) ファイルと .cab ファイルの 2 つが生成されます。
トレース イベントは ETL ファイルに収集され、ネットワーク モニターなどのツールを使用して表示できます。 ETL ファイルの名前は既定で nettrace.etl になりますが、トレースの開始時に tracefile=filename.etl を含めることで別の名前を指定することもできます。
.cab ファイルには、アダプター情報、ビルド、オペレーティング システム、ワイヤレス設定など、システム上のソフトウェアとハードウェアに関する豊富な情報が含まれています。 .cab ファイルは、上記の方法で別の名前が指定されていない限り、既定で nettrace.cab という名前になります。
この.cab ファイルには、常に同じ名前の 2 つのファイルが含まれます。 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 | Warnings | クリティカルなイベント、エラー、警告が表示されます。 |
4 | Informational | クリティカルなイベント、エラー、警告に加え、情報イベントも表示されます。 |
5 | 詳細 | すべてのイベントが表示されます。 |
キーワード ut:ReceivePath または ut: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」と入力します。