Windowsネットワークのファイル共有機能は、ネットワーク上で手軽にファイルを共有することを可能にした。WindowsとLANの普及で、ネットワークを介したファイルの読み書きや作成、削除といった操作が、ローカルのディスクと同じ感覚で実行できるのが当たり前となっている。
ファイル共有プロトコルがバージョンアップ
ユーザーとして使っているだけでは、Windowsネットワークのファイル共有機能は、特に変わっていないように見えるかもしれない。だが、実はOSのバージョンが上がるたびに、ネットワーク機能やセキュリティ機能、通信プロトコルに少しずつ変更が加えられている。こうした影響で、ファイル共有のしくみも徐々に複雑になってきた。
Windows 7の一つ前のバージョンであるVistaで、ファイル共有に関する大きな変更が加えられた。従来から利用されてきたファイル共有プロトコル「SMB」が1.0から2.0にバージョンアップされたのだ。
SMB 2.0では、従来のSMB 1.0からコマンド体系やパケットのフォーマットなどが変更されており、通信の互換性がない。だが、もちろんXPなど従来のWindowsとの間でのファイル共有も可能なように、Windows 7では以前のSMB 1.0も利用できるようになっている。Windows 7同士のようにSMB 2.0がお互いに使える場合はSMB 2.0を使い、相手がSMB 1.0しか使えなければ、VistaはSMB 1.0を使って通信するのだ(図1)。

すべてのパターンを網羅することはできないが、ここではファイル共有の基本的なしくみを、パケットを見ながら確認していくことにしよう。
サーバーや共有フォルダへの認証が必要
まずは、ローカル・ディスクに記録されたリソース(フォルダ/ファイル)へアクセスする場合と、Windowsネットワークで共有フォルダのリソースへアクセスする場合との違いを確認しておこう。ローカルでのアクセスでは、いったんログオンしたユーザーが、そのフォルダやファイルを利用できるかどうかは、ファイル・システムであるNTFSのアクセス権の設定にのみ影響される。
これに対し、ネットワーク経由のファイル共有では、まずサーバーや共有フォルダでの認証が必要となる(図2)。ユーザーがサーバーの共有フォルダに接続を試みると、まずサーバーへログオンするための認証を実行する。この認証に成功してから、続いて指定した共有フォルダのアクセスが許可されているかを確認する。そこまで完了してから、ようやくローカル・アクセスと同様に、それぞれのフォルダ/ファイルに対するNTFSでのアクセス権をチェックする。