Windowsコマンドプロンプト: nbtstatの使用方法と応用例

nbtstatコマンドは、ネットワークのトラブルシューティングや監視において非常に有用なツールです。Windows環境でネットワーク名の解決や、リモートコンピューターの情報取得を行う際に活用されます。本記事では、nbtstatコマンドの基本的な使い方、具体的な使用例、さらに応用例について詳しく解説します。

nbtstatはNetBIOS over TCP/IP専用です。DNSの逆引きやネットワーク全体の機器一覧、すべてのSMB接続を調べるコマンドではありません。まず表示用の-n・-c・-A・-Sを使い、状態を変更する-R・-RRは分けて扱います。オプションは大文字と小文字で意味が異なります。

本文のIPアドレス・PC名は例です。自分が管理し、照会を許可された対象へ置き換えてください。掲載コマンドのWindows実機テストはしていません。

目次

nbtstatコマンドの概要

nbtstatコマンドは、NetBIOS over TCP/IP(NBT)プロトコルの統計情報を表示するためのツールです。主にNetBIOS名の解決状況を確認し、ネットワーク内のコンピュータ名とIPアドレスの対応関係をチェックするために使用されます。このコマンドは、Windowsのコマンドプロンプトで実行でき、ネットワークトラブルシューティングや監視において重要な役割を果たします。

nbtstatの基本的な使い方

nbtstatコマンドは、簡単なコマンドライン操作で利用できます。以下に、基本的な使い方の例を示します。

コマンドの実行方法

コマンドプロンプトを開き、nbtstatと入力して実行します。これにより、利用可能なオプションとスイッチの一覧が表示されます。

基本コマンドの例

次に、いくつかの基本的なnbtstatコマンドの使用例を紹介します。

名前キャッシュの表示

nbtstat -c

このコマンドは、現在の名前キャッシュの内容を表示します。

名前解決統計情報の表示

nbtstat -r

このコマンドは、名前解決の統計情報を表示します。

リモート名テーブルの表示

nbtstat -A <IPアドレス>

このコマンドは、指定したIPアドレスに対応するリモート名テーブルを表示します。例えば、nbtstat -A 192.168.1.1 のように使用します。

これらの基本的なコマンドを理解することで、nbtstatの活用方法を効果的に学ぶことができます。

オプションとスイッチの説明

nbtstatコマンドには、さまざまなオプションとスイッチがあります。これらを理解することで、より効果的にコマンドを使用することができます。以下に主なオプションとスイッチの詳細を説明します。

-a [コンピュータ名]

指定したコンピュータ名に対応するリモート名テーブルを表示します。

nbtstat -a コンピュータ名

-A [IPアドレス]

指定したIPアドレスに対応するリモート名テーブルを表示します。

nbtstat -A 192.168.1.1

-c

現在の名前キャッシュの内容を表示します。キャッシュ内のNetBIOS名とIPアドレスの対応関係が一覧表示されます。

nbtstat -c

-n

ローカルコンピュータの名前テーブルを表示します。自分のコンピュータが認識しているNetBIOS名の一覧が表示されます。

nbtstat -n

-r

名前解決の統計情報を表示します。ブロードキャストやWINSによるNetBIOS名解決・登録の統計を確認します。DNS全体の成功率を示す値ではありません。

nbtstat -r

-R

NetBIOS名前キャッシュを消去し、ローカルのLmhostsファイルにある事前読み込み対象のエントリを再読み込みします。リモート端末の名テーブルを再取得する操作でも、DNSキャッシュの消去でもありません。

nbtstat -R

-S

NetBIOSのクライアント・サーバーセッションを、宛先IPアドレスのまま表示します。TCP/UDP接続全体を列挙するものではありません。

nbtstat -S

-s

NetBIOSセッションを表示し、宛先IPアドレスを名前へ変換しようとします。-Sとの違いは主に名前解決の有無で、「より詳しい別の接続一覧」ではありません。

nbtstat -s

これらのオプションとスイッチを組み合わせることで、ネットワークの状態を詳細に監視し、トラブルシューティングを行うことができます。

使用例: 名前キャッシュの表示

名前キャッシュは、ネットワーク上のコンピュータ名とそのIPアドレスの対応関係を一時的に保存する領域です。名前キャッシュを表示することで、現在のキャッシュの内容を確認できます。以下に、名前キャッシュを表示するためのnbtstatコマンドの使用例を紹介します。

名前キャッシュの表示方法

名前キャッシュを表示するには、以下のコマンドを使用します。

nbtstat -c

コマンドの実行結果

以下は読み方を説明するための架空の出力例です。実測結果ではなく、実際の表示は環境で異なります。

Node IpAddress: [192.168.1.10] Scope Id: []

                NetBIOS Remote Cache Name Table

       Name              Type       Host Address    Life [sec]
------------------------------------------------------------
EXAMPLE        <03>  UNIQUE      192.168.1.20       600
EXAMPLE-PC     <00>  UNIQUE      192.168.1.21       500
EXAMPLE-SERVER <20>  UNIQUE      192.168.1.22       400

出力結果の説明

上記の出力は、現在の名前キャッシュの内容を示しています。各項目の意味は次の通りです。

  • Name: キャッシュされたNetBIOS名。
  • Type: NetBIOS名のタイプ。一般的にユニーク名(UNIQUE)やグループ名(GROUP)があります。
  • Host Address: 対応するIPアドレス。
  • Life [sec]: キャッシュの有効期限(秒単位)。

この情報を基に、ネットワーク内のコンピュータ名とIPアドレスの対応関係を確認し、必要に応じてトラブルシューティングやネットワークの監視を行うことができます。

使用例: リモート名の解決

リモート名の解決は、指定したリモートコンピュータのNetBIOS名を確認するために使用されます。これにより、リモートコンピュータの名前とIPアドレスの対応関係を確認できます。以下に、リモート名を解決するためのnbtstatコマンドの使用例を紹介します。

リモート名を解決する方法

リモート名を解決するには、以下のコマンドを使用します。

nbtstat -A [IPアドレス]

または

nbtstat -a [コンピュータ名]

具体例: IPアドレスで解決

以下のコマンドを実行します。

nbtstat -A 192.168.1.50

コマンドの実行結果

以下は読み方を説明するための架空の出力例です。実測結果ではなく、実際の表示は環境で異なります。

Local Area Connection:
Node IpAddress: [192.168.1.10] Scope Id: []

           NetBIOS Remote Machine Name Table

       Name               Type         Status
    ---------------------------------------------
    EXAMPLE        <00>  UNIQUE      Registered
    EXAMPLE        <20>  UNIQUE      Registered
    WORKGROUP      <00>  GROUP       Registered

    MAC Address = 00-14-22-01-23-45

出力結果の説明

上記の出力は、指定したIPアドレスに対応するリモートコンピュータのNetBIOS名テーブルを示しています。各項目の意味は次の通りです。

  • Name: リモートコンピュータのNetBIOS名。
  • Type: NetBIOS名のタイプ(UNIQUEまたはGROUP)。
  • Status: 登録ステータス。
  • MAC Address: リモートコンピュータのMACアドレス。

この情報を使用して、リモートコンピュータの名前解決を行い、ネットワークトラブルシューティングや管理を効果的に行うことができます。

応用例: ネットワークトラブルシューティング

nbtstatコマンドは、ネットワークトラブルシューティングにおいて非常に役立つツールです。以下に、具体的な応用例を示します。

名前解決の問題の診断

ネットワーク上のコンピュータが他のコンピュータと通信できない場合、名前解決の問題が原因であることがあります。以下の手順で診断を行います。

名前キャッシュの確認

まず、名前キャッシュの内容を確認します。

nbtstat -c

期待するNetBIOS名とIPがあるかを調べます。キャッシュが空でも、未利用やNetBIOS無効などの理由があるため、直ちに故障とは判断しません。

名前解決の統計情報を確認

次に、名前解決の統計情報を確認します。

nbtstat -r

NetBIOS名解決・登録の統計を確認します。ブロードキャストとWINSのどちらで処理されたかなどを読み、値が0というだけで障害と判断しません。DNS名解決の成否は別の方法で確認します。

リモート名テーブルの確認

リモートコンピュータとの通信に問題がある場合、リモート名テーブルを確認します。

リモート名テーブルの表示

特定のIPアドレスに対応するリモート名テーブルを表示します。

nbtstat -A 192.168.1.50

このコマンドでリモートコンピュータのNetBIOS名とそのステータスを確認できます。

ネットワーク接続の確認

現在のネットワーク接続状態を確認するために、以下のコマンドを使用します。

nbtstat -S

このコマンドは、現在のセッションごとの接続情報を表示します。

接続状態の詳細確認

宛先を名前へ変換した表示と比較するには、以下のコマンドを使用します。

nbtstat -s

このコマンドは宛先IPアドレスの名前への変換を試みます。名前解決の問題を切り分ける場合は、-SのIP表示と比較します。

キャッシュのリセット

名前キャッシュが古くなっている場合、キャッシュをリセットして問題を解決することがあります。

nbtstat -R

このコマンドはNetBIOS名前キャッシュを消去してLmhostsの事前読み込み対象を読み直します。原因を確認し、変更が承認された場合だけ実行します。単なる表示コマンドとは区別してください。

これらの手順を実行することで、nbtstatコマンドを使用したネットワークトラブルシューティングを効果的に行うことができます。

応用例: ネットワーク監視

nbtstatコマンドは、ネットワークの監視にも有効に活用できます。ネットワーク監視は、異常を早期に検知し、対応するための重要な手段です。以下に、具体的なネットワーク監視の応用例を示します。

定期的な名前キャッシュの監視

名前キャッシュを定期的に確認することで、ネットワーク内の名前解決の状況を把握できます。

名前キャッシュの表示

nbtstat -c

このコマンドを定期的に実行し、キャッシュ内容を確認することで、異常な名前解決が発生していないかをチェックします。

リモート名テーブルの定期チェック

特定のリモートコンピュータに対して、定期的にリモート名テーブルを確認します。

リモート名テーブルの表示

nbtstat -A 192.168.1.50

このコマンドを定期的に実行することで、リモートコンピュータの名前解決状況を監視します。

ネットワーク接続の監視

現在のネットワーク接続状態を定期的に確認することで、ネットワークの健全性を監視します。

接続状態の表示

nbtstat -S

このコマンドを定期的に実行し、現在の接続状態を監視することで、異常な接続やセッションの問題を早期に発見できます。

接続状態の詳細表示

nbtstat -s

このコマンドを使用して、セッションごとの詳細な接続情報を確認し、異常がないかをチェックします。

自動化スクリプトの作成

これらのコマンドを組み合わせてバッチファイルやスクリプトを作成し、定期的に実行することで、ネットワーク監視を自動化できます。以下に簡単なバッチファイルの例を示します。

ネットワーク監視スクリプト例

@echo off
echo 名前キャッシュの表示
nbtstat -c

echo リモート名テーブルの表示
nbtstat -A 192.168.1.50

echo 接続状態の表示
nbtstat -S

echo 接続状態の詳細表示
nbtstat -s

pause

このスクリプトは手動実行用の一回の確認例です。pauseがあるため無人の定期実行にはそのまま使えません。継続監視にする場合は対象・間隔・終了条件・エラー記録・ログ保管を設計し、ネットワーク全体が健全かをnbtstatだけで判定しません。

ネットワーク監視は、問題を未然に防ぐための重要な手段です。nbtstatコマンドを活用して、ネットワークの状況を常に把握し、迅速に対応できるようにしましょう。

セキュリティ上の注意点

nbtstatコマンドの使用には、いくつかのセキュリティ上の注意点があります。これらを理解し、適切に対策を講じることが重要です。

名前キャッシュの内容の漏洩

名前キャッシュには、ネットワーク内のコンピュータ名とIPアドレスの対応関係が含まれます。これらの情報が漏洩すると、ネットワーク構成が外部に知られる可能性があります。

対策

  • コマンドの実行結果を保存する際は、アクセス権を制限し、第三者に見られないようにします。
  • 不必要に名前キャッシュを表示しないようにします。

リモート名テーブルの確認

リモート名テーブルを表示することで、ネットワーク上の他のコンピュータの情報を収集できます。これにより、不正アクセスや情報漏洩のリスクが増します。

対策

  • リモート名テーブルの情報を扱う際は、適切なセキュリティポリシーに従い、必要最小限の情報のみを表示します。
  • リモート名テーブルの情報を共有する際は、暗号化を施すなどの対策を行います。

コマンドの実行権限

nbtstatコマンドを実行するためには、適切な権限が必要です。誤って不正なユーザーに権限を与えると、ネットワーク情報が悪用される可能性があります。

対策

  • nbtstatコマンドを実行できるユーザーを制限し、適切なアクセス制御を設定します。
  • 表示のためだけに管理者権限を付与しません。キャッシュ消去・WINS再登録などの変更操作は、必要性と権限を確認して管理者が行います。

ログの管理

nbtstatコマンドの実行結果をログとして保存する場合、そのログが不正にアクセスされないように管理することが重要です。

対策

  • ログファイルの保存場所に対して適切なアクセス権を設定します。
  • ログファイルを定期的に監視し、不正アクセスの兆候がないか確認します。

これらのセキュリティ上の注意点を遵守することで、nbtstatコマンドを安全に使用し、ネットワークの監視やトラブルシューティングを効果的に行うことができます。

演習問題

nbtstatコマンドの使用方法とその応用についての理解を深めるために、以下の演習問題を解いてみましょう。

問題1: 名前キャッシュの表示

次のコマンドを実行して、名前キャッシュの内容を表示してください。

nbtstat -c

表示された名前キャッシュの内容を確認し、以下の情報を答えてください。

  • 名前キャッシュに含まれるNetBIOS名の数
  • 各NetBIOS名に対応するIPアドレス

問題2: リモート名テーブルの確認

次のIPアドレスに対応するリモート名テーブルを表示してください。

nbtstat -A 192.168.1.100

表示されたリモート名テーブルの内容を確認し、以下の情報を答えてください。

  • リモート名テーブルに含まれるNetBIOS名の数
  • 各NetBIOS名のタイプ(UNIQUEまたはGROUP)

問題3: 名前解決統計情報の表示

次のコマンドを実行して、名前解決の統計情報を表示してください。

nbtstat -r

表示された統計情報を確認し、以下の情報を答えてください。

  • 解決された名前の数
  • ブロードキャストとWINSによる解決・登録の統計の違い

問題4: キャッシュのリセット

名前キャッシュをフラッシュしてリセットするコマンドを答えてください。

問題5: 定期的な監視スクリプトの作成

以下の要件を満たすバッチファイルを作成してください。

  • 名前キャッシュを表示する
  • リモート名テーブルを表示する(管理・照会が許可された対象IPだけ)
  • 現在の接続状態を表示する
  • スクリプトの実行結果を確認できるように、一時停止する

作成したスクリプトを実行し、正しく動作するか確認してください。

解答例

問題1の解答例:

  • NetBIOS名の数: 3
  • IPアドレス: 192.168.1.20, 192.168.1.21, 192.168.1.22

問題4の解答例:

nbtstat -R

問題5の解答例:

@echo off
echo 名前キャッシュの表示
nbtstat -c

echo リモート名テーブルの表示
nbtstat -A 192.168.1.100

echo 接続状態の表示
nbtstat -S

pause

これらの演習問題を通じて、nbtstatコマンドの使い方とその応用についての理解を深めましょう。

まとめ

nbtstatコマンドは、Windows環境でネットワークトラブルシューティングや監視を行うための強力なツールです。名前キャッシュの確認やリモート名の解決、接続状態の監視など、様々な用途で活用できます。本記事を通じて、nbtstatコマンドの基本的な使い方から応用方法までを理解し、ネットワーク管理に役立ててください。セキュリティに配慮しながら、定期的な監視やトラブルシューティングを行うことで、ネットワークの健全性を維持しましょう。

見つからない・キャッシュが空の場合の確認順

対象がNetBIOS over TCP/IPを使っているか、名前やIPv4アドレスが正しいか、対象PCと経路が稼働しているかを確認します。NetBIOSが無効、対象が対応していない、通信が許可されていない場合は、稼働中のPCでも名テーブルを取得できないことがあります。失敗を「PCが存在しない」や「侵入された」の証拠にはしません。

DNSを確認したいならnslookup、一般的な接続状況ならnetstatなど、目的に合うツールを使います。DNSのFQDNとNetBIOS名は同じとは限りません。nbtstatのためだけにNetBIOSを有効化したり、ファイアウォールを全停止したり、関連ポートをインターネットへ公開したりしないでください。

-Rと-RRは別の変更操作

nbtstat -R
nbtstat -RR

上は構文の比較であり、連続実行を推奨するものではありません。-Rはキャッシュ消去とLmhostsの事前読み込み、-RRはWINSに登録されたこのPCのNetBIOS名を解放して再登録する操作です。WINSを利用していない環境で-RRを万能な修復コマンドとして使いません。

-Sと-sを比較し、継続表示を止める

nbtstat -S
nbtstat -s
nbtstat -S 5

最後の例は5秒ごとにNetBIOSセッションを表示し、Ctrl+Cで終了します。観測したい期間だけ使います。-Sが宛先IP、-sが名前への変換を試す表示です。表示する範囲はどちらもNetBIOSで、全通信の監視へ広げて解釈しないでください。

公式資料

Microsoft Learn:nbtstatの構文・各オプション・出力項目

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次