Netsh を使用したトレースの管理

Windows 7 では、コマンド プロンプトからnetsh.exeを使用して、ネットワーク トレースを有効にして構成できます。 このセクションでは、新しい netsh トレース 機能など、トレースの問題のトラブルシューティングに役立つnetsh.exeコマンドの一部について説明します。 netsh コマンドは、管理者特権のコマンド プロンプトから実行する必要があることに注意してください。

トレースの収集

シナリオは、トラブルシューティングのために有効にできるトレース プロバイダーの定義済みのセットです。 使用可能なネットワーク関連のシナリオの一覧を表示するには、「 netsh trace show scenarios」(netsh トレースショー シナリオ ) と入力します (netsh トレースには 、ネットワークに関連しないプロバイダーを含め、使用可能なすべてのプロバイダーが一覧表示されます)。

問題に関連するシナリオを特定すると、そのシナリオに含まれるすべてのプロバイダーの一覧が表示されます。 たとえば、InternetClient シナリオで有効になっているすべてのプロバイダーを表示するには、「 netsh trace show scenario internetclient」と入力します。

特定のシナリオまたは一連のシナリオですべてのプロバイダーのトレースを開始できます。 たとえば、InternetClient シナリオで有効になっているすべてのプロバイダーのトレースを開始するには、「 netsh trace start scenario=internetclient」と入力します。 複数のシナリオのプロバイダーをキャプチャするには、 netsh トレース開始シナリオ=FileSharing scenario=DirectAccess など、すべての適切なシナリオを指定できます。 一度に有効にできるトレース セッションは 1 つだけであることに注意してください。異なるプロバイダー セットのトレース情報を別々のファイルに同時にキャプチャすることはできません。

また、その特定のシナリオに含まれていない追加のプロバイダーのトレースを開始することもできます。 たとえば、WLAN シナリオで有効になっているすべてのプロバイダーと DHCP プロバイダーのトレースを開始できます。 これを行うには、「 netsh trace start scenario=wlan provider=Microsoft-Windows-Dhcp-Client」と入力します

また、 netsh トレース ショー プロバイダー の後にプロバイダー名を入力して、特定のプロバイダーの詳細を確認することもできます。

使用可能なすべてのオプションとフィルターを表示するには、「 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 ファイルには、トレース イベントとその他の収集された情報に関する追加情報が含まれています。 使用可能な最も詳細な情報を受け取るために、トレースを開始するときにコマンド レポート = yes を含めます。

フィルターを使用して ETL トレース ファイル内のデータ量を減らす

キャプチャが長期間にわたって行われると、ETL トレース ファイルが非常に大きくなる可能性があります。 複数のプロバイダーが有効になり、トラフィックが多くなるシナリオでは、ETW バッファー制約によって一部のトレースが削除される可能性があります。 この考慮事項とは別に、ETL トレース ファイル内のデータ量を減らすと、確認するデータの量を減らすことでトラブルシューティングが容易になります。

Netsh トレース フィルターを使用して、ETL トレース ファイルのサイズを小さくできます。 これらのトレース フィルターは、個々のプロバイダーに適用できる ETW レベルとキーワードです。

適用できるフィルターの一覧を表示するには、「netsh trace start /? 」と入力します。

フィルターの例としては、 netsh トレース開始 InternetClient provider=Microsoft-Windows-TCPIP level=5 keywords=ut:ReceivePath,ut:SendPath があります

この例では、レベルが 5 に設定されています。つまり、イベントの最大数が表示されます。 次の表に、使用可能な設定を示します。

Level 設定 説明
1 Critical 重要なイベントのみが表示されます。
2 エラー 重大なイベントとエラーが表示されます。
3 警告 重大なイベント、エラー、警告が表示されます。
4 Informational 重大なイベント、エラー、警告、情報イベントが表示されます。
5 "詳細" すべてのイベントが表示されます。

 

キーワード ut:ReceivePathut:SentPath は、受信パスまたは送信パスでトレースされたイベントのみを表示するようにイベントをフィルター処理します。 特定のプロバイダーのキーワードの完全な一覧は、「 netsh trace show provider 」と入力し、その後にプロバイダー名を入力することで確認できます。 たとえば、「 netsh trace show provider Microsoft-Windows-TCPIP 」と入力すると、キーワードの一覧など、Microsoft-Windows-TCPIP プロバイダーに関する情報が表示されます。

Netsh では、パケット キャプチャが有効になっている場合 ( キャプチャ = はい) の場合に、パケット フィルタリング機能 (ネットワーク モニターと同様) もサポートされます。 パケット フィルタリングを使用すると、トレース ファイル内の限られた数のパケットをキャプチャできます。 たとえば、 netsh トレース開始キャプチャ = yes ipv4.address = x.x.x.x は 、x.x.x.x は IP アドレスであり、その特定の送信元または宛先アドレスを持つ ipv4 トラフィックを持つパケットのみをキャプチャします。

パケット フィルタリングの使用方法の詳細については、「 netsh trace show capturefilterHelp」と入力します。