Windowsのマイネットワークに表示されるコンピュータの一覧
Windowsの「マイ ネットワーク」「ネットワーク コンピュータ」に表示されるコンピュータの一覧がたまに見えなくなることがあります。
この仕組みは結構ややこしいことになっていて、理解の範疇を超えているところがありますので、簡単に説明します。
ざっくり言うと、
- 名前解決はNetBIOS over TCP/IPブロードキャストとLMHOSTS、WINSが担当する
コンピュータ名とIPアドレスの変換は
- ブロードキャストで「xxxいますか?」と通知して応答を得る方法
- WindowsシステムディレクトリにあるLMHOSTSファイルで解決する
- WINSサーバに問い合わせる
Windows 2000以降ではこれにDNSが加わりますが、基本的な名前解決は上の3種類です。 - サブネットを超える名前解決はLMHOSTSかWINSを使う
ブロードキャストはサブネットの範囲までですから、サブネットを超える名前解決はローカルのLMHOSTSファイル、またはWINSサーバを参照することになります。 - コンピュータ名の一覧は適当なPCがマスタブラウザになって提供する
コンピュータ名の一覧はマスタブラウザが提供するのですが、マスタブラウザはサブネットごとに1台、適当なPCがなるため管理者の管理範囲外になることが多いです。
マスタブラウザになる優先順位としては、ドメインコントローラ→サーバOS→NT系ワークステーションOS(NT Workstation, 2000 Pro, XP Pro, XP Home)→Win9x+ファイル共有という順で、サーバOSが常時起動している環境ではコンピュータ名の一覧が見えなくなるパターンは少ないと思います。 - WINSサーバはコンピュータ名の一覧を提供する機能はない
コンピュータ名の一覧が見えなくなったときに「WINSを指定してください」という回答をよく見ることから、「WINSがコンピュータ名の一覧を提供している」と勘違いされている方も多いようです。
しかし、WINSは名前解決を行うのみでコンピュータ名の一覧は提供しません。
コンピュータ名の一覧は必ずマスタブラウザが提供しており、マスタブラウザになったPCはWINSを参照して他のサブネットの同じワークグループのコンピュータ名の一覧を取得して自分の持つコンピュータ名の一覧とマージして表示しています。 - Windows XPにSP2を後付け適用した端末が通信を阻害する
Windows XP SP2を後付け適用してWindowsファイアーウォールを有効にすると、Windowsファイル共有が正常に動かないことがあります。
そのため、こういった端末が一度マスタブラウザになると同じサブネット内にサーバOSがあってもマスタブラウザを譲らなくなるため、コンピュータ名の一覧が異常になることがあります。
ただし、WINS名前解決は動いているため、コンピュータ名をアドレスバーに入力するなど手動で指定すれば問題が解決することが多いです。
そのため、複数の拠点など、複数のサブネットから構成されるネットワークの場合は、
- 全社統一のWINSサーバを用意する
- DHCPでWINSのIPアドレスを配布する
- DHCP/固定IPアドレスが混在している環境では、固定IPアドレスを割り振っている端末は必ずWINSサーバを指定する
- 各サブネットごとにマスタブラウザになるサーバOS、またはSamba(=Windows対応のNAS)を配置する
- パーソナルファイアーウォールやWindowsファイヤーウォールを入れたPCがあるとコンピュータ名の一覧が不正になるため、コンピュータ名一覧を提供したい場合は、社内LANではファイアーウォールをオフにする、または適切に設定する
管理者不在の中小企業のLANだとこの手の問題は常時茶飯事かもしれないですね。
この手の情報源としては、マイクロソフトが100%の情報公開をしていないため、たかはしもとのぶ氏のアンドキュメンテッドMicrosoftネットワークを読むのがよいと思います。
この本ではActiveDirectoryまわりの情報は少ないのですが、NT 4.0までのクラシックなWindowsネットワークはWindows Server 2003にも引き継がれていますから、トラブルシューティングのために1冊読んでおくとよいでしょう。
参考リンク
Microsoft ネットワークを解剖する(MONYO-COM)
アンドキュメンテッドMicrosoftネットワーク(amazon)
2006/08/08 追記:
以前書いたのですが、Windows 98クライアントをWindows Server 2003のドメインに参加させた時、ネットワークコンピュータの一覧が表示されなかったり、「リソースへのアクセス権がありません」というエラーが表示されたりします。
これはドメインコントローラのグループポリシーでSMB署名が有効になることが原因のようです。
本件の対策は、"Default Domain Controllers Policy"のセキュリティオプションから以下の項目を無効にすることです。
- Microsoft ネットワーク クライアント:サーバーが同意すれば通信にデジタル署名を行う
- Microsoft ネットワークサーバー : 常に通信にデジタル署名を行う
参考リンク:KB325379 「Windows 2000 ドメイン コントローラを Windows Server 2003 にアップグレードする方法」



Comments