Windows 2000起動後にネットワークケーブルを繋いでも、ネットワークに接続できない場合がある

 ノートPCの場合、普段はネットワークに接続しない形で使用していて、ネットワークが必要になったときに、ネットワークケーブルを接続してネットワークに参加するという形態で使用していることも多いでしょう。普通はこれでも問題なくネットワークに参加できるのですが、場合によってはこの方法ではネットワークに参加できないことがあります。
 その場合でも、Windows 2000の起動時に、ネットワークケーブルを接続しておけば、その後、ケーブルを外しても、必要なときにケーブルを繋げばネットワークに参加できます。しかし、これではいかにも不便です。
 このようにWindows 2000起動時にケーブルを接続していないとネットワークに接続できない現象が起きるのは、IPアドレスを固定で設定しており(DHCPを利用していない)、かつサービスアプレットの「DHCP Client」を「手動」あるいは「無効」に設定している場合です。
 Windows 2000では、「DHCP Media Sense」という機能があり、デフォルトでこの機能が有効になっています。「DHCP Media Sense」は、IPアドレスを動的に変更することで、異なるネットワークにPCを簡単に接続できるようにする機能です。例えば、192.168.1.xのネットワークと10.0.0.xのネットワークがあり、ノートPCをときに192.168.1.xのネットワークに接続し、ときに10.0.0.xのネットワークに接続するというような使い方でも、IPアドレスをDHCPで取得するように設定しておくと、ケーブルを繋ぎ変えるだけで、各々のネットワークに参加できるようになり、非常に便利な機能です。このとき、ケーブルを外した状態ではIPアドレスが「127.0.0.1」(ローカルホスト)になります。
 この「DHCP Media Sense」機能を利用するためには、IPアドレスをDHCPで取得するように設定しておく必要があり、当然「DHCP Client」サービスが稼働していることが前提です。しかしながら、「DHCP Media Sense」機能が不要で、IPアドレスを固定で設定している場合でも、ネットワークケーブルが接続されていないと、「DHCP Media Sense」機能によりIPアドレスが「127.0.0.1」に設定されます。そしてネットワークケーブルが接続されると、それを検出し、IPアドレスを本来のアドレスに戻します。
 一方で、IPアドレスを固定で設定している場合は「DHCP Client」サービスも不要ですので、このサービスを止めるというのは無駄なリソースを使わないという意味で悪いことではありません。しかし「DHCP Client」サービスには、IPアドレスの変更結果を反映する機能があり、「DHCP Client」サービスが動作していないと、「DHCP Media Sense」機能によるIPアドレスの変更結果が実際に反映しない(Windows 2000起動時のIPアドレスのままになる)ため、名前解決ができず、ネットワークに参加できないという結果になります。
 このように、「DHCP Media Sense」と「DHCP Client」の両者が原因してこの現象が起きますので、この現象を避ける方法としては、「DHCP Media Sense」機能を無効にするか、「DHCP Client」サービスを稼働させるかのどちらかになります。簡単な方法は「DHCP Client」サービスを「自動」に設定する方法ですが、リソースの無駄使いになりますので、できれば「DHCP Media Sense」機能を無効にする方法をお勧めします。「DHCP Media Sense」機能を無効にするためにはレジストリの編集が必要になります。

 その方法は、

1) AdministratorでRegedit.exeを起動して、「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters」に移動します。

2) デフォルトでは「DisableDHCPMediaSense」というエントリがありませんので、「編集」−「新規」−「DWORD値」で作成します。

3) 「DisableDHCPMediaSense」をダブルクリックして、値のデータに「1」を入力します。



 これで、Windows 2000の起動時にネットワークケーブルを接続していなくても、必要なときにケーブルを接続すれば、ネットワークに参加できるようになります。
 なお、このWindows 2000のDHCP Media SenseあるいはDHCP Clientの動作はバグのようで、Windows XPではこうした問題は起きません。