ファイル共有を利用するには、リソースを公開しているサーバーの一覧から目的のコンピューターを見つける必要がある。今回はサーバーの一覧を提供する「コンピューターブラウザー」と「ネットワーク探索」サービスについて解説する
前回は、Windowsネットワークにおける、共有リソースの使い方(サーバー側での共有リソースの提供方法と、クライアント側での接続方法)について解説した。今回はネットワーク上のサーバーを探す「コンピューターブラウザー」と「ネットワーク探索」サービスについて見ていく。
サーバーコンピューターが公開しているファイル共有リソースを利用するには、何らかの方法でリソースを公開しているコンピューターの一覧を取得し、その中から目的のコンピューターを見つけて、その公開リソースへ接続する必要がある。
この、サーバーコンピューターの一覧を取得したり、そこから目的とするコンピューターを選んだりする操作を、現在のWindowsネットワークでは「ネットワーク探索」という。ただしこれはWindows VistaやWindows Server 2008以降での呼び方であり、それ以前のWindows OSでは「コンピューターブラウザー」とか、単に「(ネットワークを)ブラウズする」などと呼ばれていた。
目的のコンピューターが見つかったらダブルクリックする。するとそのコンピューターが公開しているリソースの一覧が表示されるので、そのままツリーをたどって目的のフォルダーを開くか、ローカルドライブにマップして利用すればよい。このあたりの手順については、前回の記事を参照のこと。
コマンドプロンプト上で操作する場合は、「net view」というコマンドを実行するとリソースを公開しているコンピューターの一覧が表示される。目的のコンピューターが見つかったら、「net view \\<コンピューター名>」を実行して公開リソース名を表示させ、その後、「net use M: \\svr1\Data」のようにしてローカルドライブにマップするか、「pushd \\svr1\Data」のようにしてローカルの適当な空きドライブにマップさせて利用するとよい(pushdした場合は、最後にpopdコマンドで解除する)。
なお、「net use 〜」コマンド実行時に、異なる資格情報(ユーザー名とパスワードの組のこと)で接続したければ、「net use M: \\svr1\Data /user:user01 password」のようにして指定すればよい(最後の「password」の代わりに「*」を指定すると、パスワードをインタラクティブに入力することができる。バッチファイル中にパスワードを直接書きたくない場合などに使う)。
Windows Vista/Windows Server 2008以降のWindows OSではネットワーク探索とファイル共有機能はデフォルトでは無効になっており、エクスプローラーで[ネットワーク]アイコンをクリックすると次のように表示される。共有機能を有効にしたければ、ユーザーが明示的に有効化する必要がある。これは、余計なパケットの送信を抑制して、ユーザーの意図しない情報漏えいなどを防ぐためだ。ファイル共有を有効にしていると、コンピューター名やその説明テキスト、共有リソースなどの情報が公開されてしまい、外部から侵入される危険性が高くなる。そのため、デフォルトでは無効になっている。
このメッセージはログオン(サインイン)して最初にアクセスしたときにしか表示されないが、必要なら後で有効にすることもできる。[コントロール パネル]の[ネットワークとインターネット]グループにある[ネットワークと共有センター]を開き、左側のリンクにある[共有の詳細設定の変更]をクリックする。すると次のような画面が表示されるので、現在有効なプロファイルの下にある[ネットワーク探索]−[ネットワーク探索を有効にする]を選択する。
コンピューターの一覧を管理するメカニズムは、前述の通り、当初のWindows OSでは「コンピューターブラウザー(Computer Browser)」とか、単に「ブラウザー」などと呼ばれていたが、現在では「ネットワーク探索(Network Discovery)」という名前になっている。これはコンピューター名を検索する方法が大きく拡張されて変わったからだ。
コンピューターブラウザーと呼ばれていたころは(Windows XPやWindows Server 2003まで)、「Computer Browser」というサービスがNetBIOS(※)機能を元にしたコンピューター名の管理を行っていた。だが現在ではそのNetBIOSベースの名前管理機能に加えて、さらに、さまざまなサービスも併用してコンピューター名(および、そこで提供されている機能)のリストを管理している。それらを総合的に扱えるようにしたのが「ネットワーク探索」機能である。以下に、ネットワーク探索の主な「プロバイダー(Provider、機能を提供する主体)」を示しておく。
プロバイダ | 機能 |
---|---|
コンピューターブラウザーサービス | NetBIOSベースの名前サービスを使ったコンピューター名の列挙。古いWindows OSではこの方法でのみコンピューター名の一覧を管理していた |
UPnPデバイス | UPnPプロトコルによるコンピューター名の列挙 |
SSDP Discovery | 主にホームネットワーク上のUPnP(Universal Plug & Play)デバイスを検出するサービス、SSDP(Simple Service Discovery Protocol)による列挙 |
レジストリ | レジストリに記録されたホストも列挙可能 |
WS-Discovery(WSD) | WSD(Web Service on Devices)対応デバイスの列挙 |
WCN | 無線ネットワークの設定を容易にするために使われるWCN(Windows Connect Now)による列挙 |
LLTD | ネットワークマップ(Windows VistaやWindows 7のコントロールパネルの[ネットワークと共有センター]で[フルマップの表示]を実行すると表示される)を作成するためなどに使われるLLTD(Link-Layer Topology Discovery)プロトコルによる列挙 |
LLMNR | IPv6のローカルセグメント向け名前解決機能LLMNR(Link-Local Multicast Name Resolution)を使ったコンピューター名の列挙。LLMNRについては、IPv6解説連載の「LLMNRを使ったローカル・セグメント上での名前解決」を参照 |
ネットワーク探索で利用可能なプロバイダー例 ネットワーク上のサーバー(サービス)を検出するために使われるプロトコル。プロバイダーとは、ネットワーク探索サービスに対して、サーバー(やサービス)の情報を提供する主体のこと。ネットワーク探索では、これらのプロバイダーから得られた情報を全てまとめて表示するようになっている。サードパーティー製のプロバイダーを追加することも可能。 |
ネットワーク探索でどのようなプロトコルが使われているかは、[セキュリティが強化されたファイアウォール]で「ネットワーク探索」グループの規則を表示させると確認できる。
ネットワーク探索が有効になっていると、これらのプロトコルが有効になることが分かる。
エクスプローラーのサーバー名の一覧に表示されている名前が、どの方法(プロトコル)によって検索されたかは、[探索方法]という項目を表示させると確認できる。
「ネットワーク探索」では、さまざまな探索プロバイダーから得られたコンピューター名の情報を一覧にして表示しているだけである。ほとんどのプロトコルでは、コンピューター名を問い合わせるパケットをブロードキャストやマルチキャストで送信すると、そのパケットを受信したコンピューターが応答を返す、というふうに動作している。こうやってコンピューター名を収集してネットワーク探索結果のリストに加え、それを表示している。
NetBIOSを使っている、古くからある「コンピューターブラウザー」サービスも同様にブロードキャストとその応答を使ってコンピューター名を収集しているが、コンピューター名のリストの保持方法が少し異なる。NetBIOS環境では、コンピューター名のリストを保持する特別なサーバーが1台もしくは複数台ネットワーク上に存在しており、「コンピューターブラウザー」、もしくは単に「ブラウザー」と呼ばれている。通常のクライアントコンピューターが共有リソースを提供しているコンピューター名の一覧を取得したくなった場合は、ブラウザーに問い合わせてリストを取得する。この仕組みにより、ネットワーク上の多くのコンピューターがそれぞれ独自にサーバーコンピューターのリストを作成・保持する必要がなくなるし、(余計なブロードキャストなどがなくなり)ネットワーク全体のトラフィックも大幅に抑制できる。
NetBIOSをサポートしたコンピューターは、起動時にブラウザーに自分自身を登録し、終了時に名前を解放する。そしてコンピューター名の一覧が欲しい場合は、ブラウザーに問い合わせてリストを取得する。
あるコンピューターがブラウザーを担当しているかどうかは、「nbtstat -n」コマンドを実行すると確認できる。結果の名前欄に「..__MSBROWSE__.<01>」という項目があれば、ブラウザーとして動作している。
ネットワーク上に複数台のWindows OSコンピューターがあり、それぞれの上で「Computer Browser」サービスが動作していれば、そのいずれもがブラウザーとして動作できる可能性がある。だがどのコンピューターがブラウズリストを管理する「マスターブラウザー」になるかは、ネットワークの状況に応じて動的に変わるのでユーザーは気にする必要はない。基本的には、より新しいバージョンのWindows OSの方が優先されるし、クライアントOSよりもサーバーOSの方がブラウザーになる優先度が高くなっている。マスターブラウザーにならないシステムは、「バックアップブラウザー(高負荷時にマスターブラウザーの代わりに応答する)」や「ポテンシャルブラウザー(マスターやバックアップブラウザーの停止時に、それらに昇格するブラウザー)」として動作する。
どのサーバーがどの種類のブラウザーになっているかは、例えばbrowstat.exeコマンドで確認できる(これはWindows XPのサポートツールなどに含まれているコマンド。Windows 7/Windows Server 2008 R2以降では実行できない)。このコマンドについては、関連記事も参照のこと。
今回はサーバーコンピューターの一覧を提供する、「ネットワーク探索」と「コンピューターブラウザー」サービスについて見てきた。次回からはWindowsネットワークプロトコルの内部を解説する予定である。
Copyright© Digital Advantage Corp. All Rights Reserved.