△ 図をクリックすると拡大されます
図1●ディスク・クォータをグループ・ポリシーで設定する
Q

Windows 2000 Serverでファイル・サーバーを構成しています。グループ・ポリシーでディスク・クォータ機能を設定することで,ユーザーごとに利用可能な容量を決め,一定以上は書き込めないようにしています(図1)。

 最近ディスクの空き容量が少なくなってきたため,グループ・ポリシーの設定を変更してユーザーに割り当てる容量を減らしたのですが,設定が反映されず,相変わらず以前設定した容量まで書き込みができるようです。設定を反映させるには,どうすればよいでしょうか?

A

Windows 2000 Serverのディスク・クォータ機能の仕様により発生する現象です。

 Windows 2000 Serverでディスク・クォータ機能を有効にすると,有効にした時点でそのボリュームにファイルを保持していたユーザーのエントリが作成されます。その時点で存在しなかったユーザーについては,ユーザーがクォータ機能設定後に,そのボリュームに初めてアクセスした時点で,そのユーザーのエントリが作成されます。エントリはユーザー単位で作成され,ユーザーごとにディスクの使用量がカウントされ,警告や書き込み禁止などの処理が行われます。

 このエントリは,ディスク・クォータを設定したボリューム(パーティションを含みます。以下同じ)のプロパティから[クォータ]タブを選択して,さらに[クォータエントリ]ボタンを押すと現れるウインドウで確認できます(図2)。ここでエントリごとの設定変更や,新規エントリ作成などの操作も行えます。


△ 図をクリックすると拡大されます
図2●各ユーザーのエントリをボリュームのプロパティで確認する

 ところが,一度エントリが作成されると,その後にグループ・ポリシーでクォータに関する設定を変更しても,エントリに記録されたクォータ制限や警告レベルなどの数値には,反映されない仕様です。そのため,ご質問にあったように以前の設定値までは書き込める事象が発生するのです。

 この事象はグループ・ポリシーを使用せず,ボリューム(パーティション)のプロパティの[クォータ]タブの画面にある[ディスク領域を制限する]の隣の設定欄で制限値を変更した場合にも発生します。

個々のエントリを
修正・削除すればよいが面倒

 既にエントリを作成してしまったユーザーに対して新しい設定を有効にするには,個々のエントリを直接修正するか,一度エントリを削除する必要があります。

 エントリを削除した場合は,次にそのユーザーがボリュームにアクセスした際に新しい設定が反映されたエントリが再作成されます。ただし,エントリを削除する場合は,図2右のエントリ一覧より直接削除を行う必要がある上,一度そのユーザーが所有しているファイルをすべて別のボリュームに移動するか,所有者を変更する必要があります。エントリの削除は現実的ではない場合が多いでしょう。

 このように,一度設定したディスククォータの設定を変更するのはかなり面倒です。そのため,一度設定したものを変更しないで済むよう十分に計画して設定を行ってください。

 なお,ほかにもディスク使用量が,あくまでファイルの所有者単位で集計されることが原因となって,設定値以上に書き込めるように見える現象が発生することがあります。

 例えば,ユーザーAが作成したファイル(所有者はユーザーA)に対してユーザーBが大量の書き込みを行った場合,そのファイルはあくまでユーザーAのクォータを消費します。このときは,一見するとユーザーBがクォータを超過して書き込みが行えているように見えます。おかしいと思ったら,ファイルの所有者を確認してみることも併せてお勧めします。

高橋基信