筆者が初めてMicrosoftネットワークについて学んだのは,1985年3月のことであった。このとき,米Microsoftではなく米IBMが「IBM PC Network Support Program」をリリースした。これはPC/MS-DOS上で「サーバー」を動作させるネットワークOSだった。このソフトで初期のネットワーキング技術を学んだことは,その後の21年間にわたり筆者の大きな財産になっている。IBM PC Network Support Programを使うと,コマンド・ラインからすべてのネットワーク管理を実行できた。そしてまさかと思うかもしれないが,それらのコマンドはWindows Server 2003でも依然として現役なのだ。

 コマンドの代表例が「Net Use」や「Net Time」といったNetコマンドである。Netコマンドは強力であり,Windows Server 2003でますます便利になっている。ところが多くの人が,Netコマンドの能力に気づかずにいる。これはとても残念な話だ。コマンド・ライン・ツールを使えば,とても簡単に,短時間でネットワークをセットアップできる。

 今回は特に「Net Share」コマンドを紹介する。これは,筆者の知るかぎりでは,ファイル共有の作成や共有アクセス権の設定,ファイルを共有しているユーザーの検索と表示のすべてをコマンド・ラインから実行できる,唯一のツールである。機能はWindows Server 2003で大きく強化されたので,注目していただきたい。

 Net Shareの最も基本的な構文は,既存の共有を表示するものである。コマンド・ラインで,

net share

 と入力してEnterを押すと,すべての共有名がリスト表示される。また追加情報として,共有しているドライブとパスのほか,その共有に関する備考も表示される。そして,心配している読者もいるかと思うが,ほとんどすべてのWindows組み込みコマンド・ライン・ツールがそうであるように,大文字と小文字は区別されない。

Net Shareコマンドで新しい共有を作成する

 新しい共有を作成するには,次のコマンドを(1行で)入力する(Windows Server 2003の場合)。

net share [共有名=ドライブ名:パス]
  /remark:"コメント"
  /grant:ユーザー名,full/change/read
  /grant:ユーザー名,full/change/read

 この書き方だと少し分かりにくいので,もう少し分かりやすい例を示そう。

net share mytest=C:\test
  /remark:"Playing with Net Share"
  /grant:administrator,full
  /grant:otherguy,change

 このコマンドは,既存のフォルダ(C:\test)を「mytest」という名前で共有するものである。例えば,コマンドを入力したパソコンの名前が「PC55」であれば,作成している共有のUNC名(Universal Naming Convention,用語解説)は「\\pc55\mytest」となる。

 もちろん,ファイル共有には適切なアクセス権を設定する必要がある。Windows Server 2003のNet Shareコマンドで,「/grant」パラメータを使えば,必要に応じていくつでも共有アクセス権を設定できる(/grantパラメータはWindows Server 2003だけに搭載されている)。

 上記の例では,「administrator」というアカウントに「フルコントロール」(Full)の共有アクセス権(用語解説)が設定されていて,「otherguy」というアカウントに「変更」(Change)の共有アクセス権が設定されている。共有アクセス権は,フル・コントロール(Full),変更(Change),読み取り(Read)という3つのレベルしか存在しない。NTFSアクセス権よりもずっと単純なアクセス権である。

共有アクセス権を変更するには?

 Net Shareコマンドを使って共有アクセス権を変更するには,どうすればよいだろうか。筆者は,コマンド1つでそれを実行する方法を知らない。しかし2つのNet Shareコマンドを使えば,共有アクセス権を変更できる。つまり,共有を削除するコマンド(もちろん,それまで共有されていたディレクトリ内のファイルが削除されることはない)を使った後に,新しいアクセス権で共有を再構築するコマンドを実行するのだ。

 コマンド・ラインで共有を削除するには,次のように/deleteオプションを指定する。

net share mytest /delete

ローカルにキャッシュさせない方法

 Windows Server 2003/XP/2000には「オフライン・ファイル」という機能がある。共有フォルダのデータをクライアントのローカル・マシンにキャッシュする機能であり,ユーザーはネットワークが途絶えた場合でも,ローカルで共有フォルダのデータが利用できるようになる。Net Shareコマンドで「/cache」パラメータを使えば,クライアントに共有フォルダのデータをキャッシュさせるかどうかも制御できる(/cacheパラメータはWindows Server 2003だけに搭載されている)。

 なおキャッシュの設定には4種類あり,/cacheパラメータでも4つの設定を利用できる。キャッシュの設定は,Windowsエクスプローラで共有フォルダの[プロパティ]-[共有]タブを選択して,[キャッシュ]ボタンをクリックしても確認できる。具体的には,「ドキュメントの手動キャッシュ」(manual),「ドキュメントの自動キャッシュ」(documents),「プログラムとドキュメントの自動キャッシュ」(programs),「キャッシュを可能にしない」(none)の4つとなる。キャッシュを禁止する場合は,次のように入力する。

net share mytest=C:\test
  /remark: "Playing with Net Share"
  /grant:administrator,full
  /grant:otherguy,change
  /cache:none

 コマンド・ラインでシステム構成をする場合,Netコマンドは非常に役に立つが,Net Shareも例外ではない。ぜひ試してみてほしい。