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桁-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-XXXX-XXXX-XXXX-XXXXXXXXXX15} であることが分かる。

レジストリエディターを起動し、前記2で取得したネットワークアダプタ GUIDの有無を、以下の手順で確認する。なお、レジストリのバックアップは必ず行ってから実施する。
▶ 手順 1
スタートボタンを右クリックし、[ファイル名を指定して実行] の名前のフォーム内に [regedit] を入力 [OK] をクリックしてレジストリエディターを起動する。
▶ 手順 2
レジストリエディターが起動したら、ハイブ「HKEY_LOCAL_MACHINE」のツリーをたどり、サブキー「Linkage」を探す。または、アドレスバーに以下をコピペする。
[Linkage] をクリックすると、右ペイン内に ❶ [Bind] ❷ [Export] ❸ [Route] の3つの名前がある。

▶ 手順 3
❶ [Bind] を右クリックして [修正] をクリックする。

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

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

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

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

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

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