The Cable Guy: Windows 7 のネットワーク診断とトレース

Joseph Davies

Windows ユーザーは、ほとんどの場合において自立した存在です。一般的には、自分で問題を見つけて、修正することを好みます。Windows Vista には、ネットワーク接続の問題が発生したときに、ユーザーを手助けするネットワーク診断フレームワーク (NDF) が用意されていました。NDF は、一連のテクノロジとガイドラインで構成されたもので、各種のトラブルシューティング ツールによって問題の診断をサポートし、可能であれば自動的に問題を解決します。

NDF では、ネットワークの問題が発生すると、診断結果と問題解決の手順をユーザーに提示します。また、ネットワークの問題に対する一般的なトラブルシューティングの手順と解決作業の多くを簡素化および自動化します。

Windows 7 では、通知領域、コントロール パネルの [トラブルシューティング] 項目、Windows イベント トレーシング (ETW) などの新機能が導入され、NDF が OS に統合されました。その結果、自動的に、またはユーザーの操作によって解決できないネットワークの問題をトラブルシューティングするのに必要な情報を、簡単に確認したり、収集したりできます。

通知領域のネットワーク アイコンからのネットワークのトラブルシューティング

Windows 7 デスクトップの通知領域に表示されているネットワーク アイコンを右クリックして、[問題のトラブルシューティング] をクリックすると、簡単にネットワークのトラブルシューティングを開始できます。Windows ネットワーク診断が起動し、問題の検出と解決が試みられます。

コントロール パネルからのネットワークのトラブルシューティング

Windows 7 では、エラーが発生していなくても、組み込みの診断機能を使用できます。コントロール パネルの新しい項目 [トラブルシューティング] から、いつでもトラブルシューティングを開始できます。トラブルシューティングを開始すると、図 1 の画面が表示されます。この例では、コンピューターがインターネットに接続されていないことが検出されています。このページには、問題を通知し、再接続を試すオプションを提供するメッセージが枠に囲まれた状態で表示されています。

コントロール パネルの項目 [トラブルシューティング] を開くと表示される画面

図 1 コントロール パネルの項目 [トラブルシューティング] を開くと表示される画面

[ネットワークとインターネット] をクリックすると、図 2 のダイアログ ボックスが表示されます。このダイアログ ボックスでは、インターネット接続の問題、他のコンピューター上のファイルやフォルダーへのアクセスの問題、ネットワーク印刷の問題など、各種の問題のトラブルシューティングを開始するための 7 つのオプションを利用できます。

ネットワークとインターネットの問題のトラブルシューティング

図 2 ネットワークとインターネットの問題のトラブルシューティング

いずれかのオプションを選択すると、問題の診断を行い、可能であれば自動または手動の解決手順を示すウィザードが表示されます。このトラブルシューティング ツールでは、イベント トレース ログ (ETL) も記録されます。問題を解決できない場合は、このログを調べたり、転送したりできます。このログを参照するには、トラブルシューティングのダイアログ ボックスで、[履歴の表示] をクリックします。図 3 に ETL の例を示します。

トラブルシューティングの履歴の例

図 3 トラブルシューティングの履歴の例

履歴の一覧の各トラブルシューティングの項目には、1 回のトラブルシューティングの情報が含まれています。項目をダブル クリックすると、特定のトラブルシューティングの結果が表示されます。図 4 に例を示します。

トラブルシューティング レポートの例

図 4 トラブルシューティング レポートの例

検出作業の詳細を表示するには、[検出の詳細] リンクをクリックします。このリンクをクリックすると、図 5 のようなウィンドウが表示されます。

トラブルシューティング レポートの一般的な [検出の詳細] 画面

図 5 トラブルシューティング レポートの一般的な [検出の詳細] 画面

ダイアログ ボックス上部に、この特定のトラブルシューティングに関する情報が格納されている ETL ファイルの名前が表示されます。このファイルのコピーをサポート スタッフやマイクロソフトに送信して、分析を依頼する場合は、ファイルの名前をクリックすると [ファイルのダウンロード] ダイアログ ボックスが表示され、ファイルを保存できます。

ETL ファイルは、Network Monitor 3.3 を使用して表示および分析できます。また、このファイルはイベント ビューアーや Tracerpt.exe で表示したり、netsh trace convert コマンド を使用して XML ファイルやテキスト ファイルに変換することもできます。[トラブルシューティング履歴] ウィンドウでトラブルシューティングの項目を右クリックして [名前を付けて保存] をクリックすると、CAB ファイルにトラブルシューティングの詳細を保存できます。ETL ファイルと同様に、この CAB ファイルもサポート スタッフに送信して分析を依頼できます。

Netsh.exe によるネットワーク トレース

Windows 7 には、ネットワーク トレース用の新しい Netsh.exe コンテキストである netsh trace があります。netsh trace コンテキストのコマンドを使用すると、プロバイダーやシナリオを選択して、トレースを有効にできます。プロバイダーは、Winsock、TCP/IP、ワイヤレス LAN サービス、NDIS など、ネットワーク プロトコル スタックに含まれる個々のコンポーネントを表します。トレース シナリオは、ファイル共有やワイヤレス LAN アクセスなど、特定の機能を実現するために事前に定義されているプロバイダーのコレクションです。関係のない詳細情報を除外し、ETL ファイルのサイズを縮小するには、フィルターを適用できます。

通常、ネットワークの問題の詳細なトラブルシューティングを行うには、ヘルプデスクのスタッフや Microsoft カスタマー サポートに、内部コンポーネントのトレース情報と問題発生時のネットワーク トラフィックのキャプチャの両方を提供する必要があります。Windows 7 以前は、これらの情報を取得するために、2 種類の操作を実行する必要がありました。まず、Netsh.exe コマンドを使用して、トレース、およびネットワーク トラフィックをキャプチャするネットワーク モニターなどのパケット スニファー プログラムの有効/無効を切り替える必要がありました。そうして必要な情報を取得できたら、この 2 種類のソースの情報を結び付けて、トレース ログに記録されているイベントに関係のあるネットワーク トラフィックが送信されたタイミングを特定するという難しい作業に取り組む必要がありました。

Windows 7 では、netsh trace コンテキストのコマンドを使用してネットワーク トレースを実行すると、ETL ファイルにネットワーク トラフィック情報とコンポーネントのトレース情報の両方を、発生した順番に格納できます。また、この ETL ファイルは Network Monitor 3.3 を使用して表示できるので、ネットワークの問題を非常に効率的に分析してトラブルシューティングできます。図 6 に、Network Monitor 3.3 で表示した ETL ファイルの例を示します。

ETL ファイルに記録されたネットワーク トラフィックを Network Monitor 3.3 で表示した状態

図 6 ETL ファイルに記録されたネットワーク トラフィックを Network Monitor 3.3 で表示した状態

この新しい機能を使用すると、問題が発生しているコンピューターにユーザーやヘルプデスクのスタッフが Network Monitor をインストールして使用しなくても、ネットワーク トラフィックをキャプチャできます。ただし、既定では、コントロール パネルの [トラブルシューティング] から実行したトラブルシューティングで生成された ETL ファイルには、ネットワーク トラフィック情報が含まれないことに注意してください。

ネットワーク スタック内の複数のコンポーネント (Winsock、DNS、TCP、NDIS、WFP など) についてのトレース情報とネットワーク トラフィック情報をキャプチャするために、Windows では、グループ化と呼ばれるアクティビティ ID ベースの相関関係を使用して、トレース情報とトラフィック情報を収集し、ETL ファイルに記録しています。ETL ファイル内で行われるグループ化により、トランザクション全体を、関連する一連のイベントとして検証できます。

トレースを実行する Netsh.exe コマンドの詳細については、補足記事「Netsh.exe トレースの開始と停止」を参照してください。

Netsh.exe を使用してトレースを有効にすると、Windows 7 では 2 つのファイルを作成できます。1 つは ETL ファイルで、Windows コンポーネントのトレース イベントと、指定されている場合はネットワーク トラフィック情報が含まれます。既定では、この ETL ファイルには Nettrace.etl という名前が付けられ、%TEMP%\NetTraces フォルダーに格納されます。tracefile= パラメーターを使用すると、別の名前と保存先を指定できます。もう 1 つは、オプションの CAB ファイルです。このファイルには、テキスト、Windows レジストリ、XML、追加のトラブルシューティング情報が格納された他のファイルなど、複数の種類のファイルを保持できます。CAB ファイルには、ETL ファイルのコピーを含めることもできます。既定では、この CAB ファイルには Nettrace.cab という名前が付けられ、%TEMP%\NetTraces フォルダーに格納されます。

また、Netsh.exe とコントロール パネルの [トラブルシューティング] を組み合わせて使用することもできます。まず、適切な Netsh.exe コマンドを使用して、トラブルシューティング シナリオに必要なトレースを有効にします。たとえば、netsh trace scenario=internetclient report=yes というコマンドを使用します。次に、コントロール パネルの [トラブルシューティング] を使用して、[インターネットへの接続] のトラブルシューティングを実行します。完了したら、netsh trace stop コマンドを実行します。これで、このトラブルシューティングの履歴を表示すると、CAB ファイルにアクセスできるようになります。

補足記事: Netsh.exe トレースを開始および停止する

Netsh.exe を使用してネットワーク トレースを開始するには、まず、管理者特権でコマンド プロンプトを実行します。トレース プロバイダーの一覧を表示するには、「netsh trace show providers」と入力します。トレース シナリオの一覧を表示するには、「netsh trace show scenarios」と入力します。特定のシナリオに含まれるトレース プロバイダーの一覧を表示するには、「netsh trace show scenario <シナリオ名>」と入力します。

1 つまたは複数のプロバイダー、あるいは 1 つまたは複数のシナリオに対して、トレースを開始できます。たとえば、InternetClient シナリオのトレースを開始するには、「netsh trace start scenario=internetclient」と入力します。複数のシナリオのトレースを開始するには、「netsh trace start scenario=FileSharing scenario=DirectAccess」のように、該当するシナリオをすべて指定します。

report=yes パラメーターを含めると、書式設定されたレポートを含む CAB ファイルを作成できます。また、tracefile= パラメーターを使用すると、ETL ファイルと CAB ファイルの名前と保存先を指定できます。ETL ファイルにネットワーク トラフィックを記録する場合は、capture=yes パラメーターを指定します。

たとえば、WLAN シナリオのトレースを開始し、書式設定されたレポートを含む CAB ファイルを作成して、ネットワーク トラフィックをキャプチャし、WLANTest という名前を付けてファイルを C:\Tshoot フォルダーに格納するには、「netsh trace start scenario=WLAN capture=yes report=yes tracefile=c:\tshoot\WLANtest.etl」というコマンドを使用します。

トレースを停止するには、netsh trace stop コマンドを使用します。

詳細については、「Windows Server 2008 R2 のネットワーク トレース用の Netsh コマンド (英語)」を参照してください。

補足記事: Network Monitor 3.3 を使用して ETL ファイルを表示する

Network Monitor 3.3 を使用して Windows 7 で生成された ETL ファイルを表示するには、フル Windows パーサーを構成する必要があります。既定では、Network Monitor 3.3 は、スタブ Windows パーサーを使用します。フル Windows パーサーを構成するには、[Tools] (ツール) メニューの [Options] (オプション) をクリックし、[Parsers] (パーサー) をクリックします。パーサーの一覧で、[Windows] の [Stubs] (スタブ) をクリックしてスタブ パーサーを無効にし、フル パーサーを有効にして、[OK] をクリックします。

Joseph Davies は、マイクロソフトの Windows ネットワーク ライティング チームのプリンシパル テクニカル ライターです。『Windows Server 2008 Networking and Network Access Protection (NAP)』、『Understanding IPv6, Second Edition』、『Windows Server 2008 TCP/IP Protocols and Services』など、Microsoft Press 発行の多数の書籍を執筆および共同執筆しています。

関連コンテンツ

·       The Cable Guy: インターネットでの NAP (英語)

·       The Cable Guy: Windows Server 2008 R2 と Windows 7 における IPv6 のサポート

·       The Cable Guy: DirectAccess とシン エッジ ネットワーク