NetBIOS Over TCP/IP が有効にならない場合の対処方法

NetBIOSのサービスをTCP/IP上に実装すると、ネットワーク・プロトコルをTCP/IPだけに限定することができるためトラブル回避ができる。また、TCP/IPの持つルーティング機能を使って、ルーターで相互に接続されたような LANや WANを使って複数拠点を結ぶ大規模なネットワークが構築できる。このようなことから IBMと Microsoftは、TCP/IP上で NetBIOSの APIを使用し、Windows上でファイル共有サービスなど幅広く使えるようにした。これが NetBIOS over TCP/IP(NetBTまたはNBT)である。
しかし、NetBIOS over TCP/IPが有効になっていると、コンピュータの情報がインターネットに筒抜けになってしまい、攻撃者に対して有益な情報を与えてしまうことになる。従って、Windowsのアップデートやセキュリティソフトの導入などにより、ネットワークアダプタの GUID(Globally Unique IDentifier)グローバル一意識別子が、レジストリのデータベースから削除されてしまう場合がある。
そのような場合、ネットワーク接続を必要に迫られ、NetBIOS Over TCP/IPを GUI画面上で有効に設定しても、ネットワーク接続の詳細プロパティ [NetBIOS Over TCP/IP 有効] の値が [いいえ] になり、ネットワークに接続できなくなる。
このページでは、使用しているネットワークアダプタの GUIDを取得し、レジストリのデータベースから削除されている場合、レジストリのデータベースに再追加する作業を、画像を用いながら記すことにする。
● 最初に、NetBIOS over TCP/IPの値を確認するため、コマンドプロンプトまたはPowerShellを起動し、カーソル位置に [ipconfig /all] を入力し [Enter] キーを押す。
※ 参考
ipconfigは、TCP/IPの設定などの確認ができ、パソコンのネットワーク機能を調査するコマンドである。
NetBIOS Over TCP/IPを GUI画面上で有効に設定したにもかかわらず、以下の画像では [NetBIOS Over TCP/IP] の値が [いいえ] になっているのが見て取れる。実際の値は [有効] でなければならない。
・ 画像のマスキング部分はグレー色で囲んであり、以下同様とする。

使用しているネットワークアダプタの GUIDを取得する。
※ 参考
GUID(Globally Unique IDentifier)とは、128ビット(16バイト)の値からなるデータを一意に識別するために用いられる識別子のことで、{XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX} のように8桁-4桁-4桁-12桁をハイフンで区切って記載する。Windowsではインターフェース識別子やクラス識別子などに利用されている。
● コマンドプロンプトまたはPowerShellのカーソル位置に、[wmic nicconfig get Caption, SettingID] と入力し [Enter] キーを押す。
※ 参考
WMIを操作するコマンドとして Windowsには、wmic.exe(Windows Management Instrumentation Command Line)というコマンドラインツールが用意されている。このコマンドを使えば、WMIによって提供されている情報の取得や操作が可能になる。
以下の画像は GUIDがキャプションされている SettingIDである。使用しているネットワークアダプタは [Realtek PCIe GbE Family Controller] であり、GUIDは {FAA039B8- 15} であることが分かる。

レジストリエディターを起動し、前記2で取得したネットワークアダプタ GUIDの有無を確認する。
⑴ スタートボタンを右クリックし、[ファイル名を指定して実行] の名前のフォーム内に [regedit] を入力 [OK] をクリックしてレジストリエディターを起動する。
⑵ 起動したら、[HKEY_LOCAL_MACHINE ➡ SYSTEM ➡ CurrentControlSet ➡ Services ➡ NetBT ➡ Linkage] リンケージへ移動する。
[Linkage] をクリックすると、右側のフォーム内に ❶ [Bind] バインド ❷ [Export] エクスポート ❸ [Route] ルートの3つの名前がある。

⑶ ❶ [Bind] を右クリックして [修正] をクリックする。

⑷ 以下画像の [複数行文字列の編集] のダイアログが表示され [値のデータ] のフォーム内に前記2で取得したネットワークアダプタと同じGUIDがないことが見て取れる。
他の❷ [Export] ❸ [Route] も同様と思われるが、とりあえず同じように確認する必要がある。

前記2で取得したネットワークアダプタの GUIDを前記❶❷❸の各セクションの値のデータに [Tcpip6のGUID] および [TcpipのGUID] をそれぞれ追加する。
※ 参考
レジストリエディターの修正を間違えると、最悪の場合は Windowsのシステムが起動しない場合もあり得るため、レジストリのエクスポートは必須である。
また、インプットミスを軽減するには、フォーム内に現在表示されている値のデータ \Device\Tcpip6_{ } および \Device\Tcpip_{ } を下側にコピペし { } 内の GUIDを削除する。
次に、前記2で取得したネットワークアダプタの GUIDを { } 内にコピペすると入力ミスは皆無になる。
❶ [Bind] バインドに GUIDを追加し [OK] をクリックする。
※ 例
\Device\Tcpip6_{FAA039B8- 15}
\Device\Tcpip_{FAA039B8- 15}

❷ [Export] エクスポートに GUIDを追加し [OK] をクリックする。
※ 例
\Device\Tcpip6_{FAA039B8- 15}
\Device\Tcpip_{FAA039B8- 15}

❸ [Route] ルートに GUIDを追加し [OK] をクリックする。
※ 例
\Device\Tcpip6_{FAA039B8- 15}
\Device\Tcpip_{FAA039B8- 15}

すべてを追加して確認が終わったらパソコンを再起動し、コマンドプロンプトまたはPowerShellを起動する。
● 確認するため前記1と同じように、カーソル位置に [ipconfig /all] を入力し [Enter] キーを押す。
以下の画像では [NetBIOS Over TCP/IP] の値が [有効] になっているのが見て取れる。

※ 当ウェブサイトは、ここに記した内容に伴い発生したいかなるトラブル、損失、損害などの諸問題について一切責任は負いません。あくまでも自己責任で行っていただくことをご承知おき願いたい。