フォルダ共有の話が出たところで、共有フォルダにはつきものの問題である、ディスクの使い過ぎと、それに関連する機能であるクォータについて取り上げてみよう。

フォルダごとのディスク使用量確認

ファイルサーバを運用していると、ユーザーがさまざまなファイルを手当たり次第にファイルサーバに放り込んだり、あるいは同じファイルが重複して置かれたり、といった理由から、ディスクの空き容量がどんどん減ってしまうのはお約束である。

ハードディスクの大容量化・低価格化が進んでいるので、以前と比べると問題が軽減されたといえるかもしれないが、バックアップの手間が増えるし、そもそも余裕があるからといって無駄遣いしてよいというものでもなかろう。

そこで、ユーザーごと、あるいはフォルダごとにディスク使用量を調べて「誰それはこんなにディスク容量を使っている」と指摘しなければならないかもしれない。それをやるには証拠が必要だ。

分かりやすいのは、エクスプローラでフォルダのプロパティ画面を表示させる方法だ。[全般]タブで、そのフォルダとサブフォルダ以下に格納しているファイルの総容量を確認できる。これなら新たに何かツールを用意する必要がないので手軽である。ただし、使用量を表示するまでに時間がかかる傾向があるのが難点だ。

もっと迅速な方法として、DIRUSEコマンドがある。これはWindowsの標準コマンドではないので、別途、入手しなければならない。コマンドの使い方についてはTechNet Online(英語)に解説があるので、それも併せて示す。

・DIRUSEセットアッププログラムのダウンロード(クリックすると、いきなりダウンロードが始まるので注意)

・Diruse Overview: File and Storage Services

・Diruse Syntax: File and Storage Services

・Diruse Remarks: File and Storage Services

このコマンドは、引数にフォルダ名を指定して実行すると、指定したフォルダの総容量を表示する。つまり、基本的な構文は「DIRUSE <パス名>」だ。さらに、以下の引数を併用できる。

引数 説明
/S サブフォルダすべてについて、個別に容量を表示
/V 進捗状況をリアルタイム表示。「/S」使用時は無視する
/M 容量をメガバイト単位で表示
/K 容量をキロバイト単位で表示
/B 容量をバイト単位で表示(既定値)
/C 圧縮したファイルについて、圧縮後のサイズを表示
/Q: 指定した容量に達しているフォルダについて、左端列に「!」を表示
/D /Q」と併用して、指定した容量に達しているフォルダだけを表示
/* 指定したパス名直下の各フォルダごとに、容量を表示

DIRUSEコマンドの主な引数

ファイルの圧縮

証拠を突きつけて無駄なファイルを消してもらうことができれば話は簡単だが、そうそう常に無駄なファイルがあふれているとは限らない。どうしても必要なファイルばかりで、空き容量を稼ぐためにストレージの増設が必要ということもあり得る。

しかし、個人やSOHOレベルならともかく、大きな組織になると「増設用のHDDをパッと買ってくる」というわけにもいかない。SkyDriveみたいなクラウドストレージに分散できるかどうかも状況次第である。

そこで、NTFSを使用していれば圧縮機能を利用することができる。しかし、圧縮がどれだけ効果を発揮するかはファイルの内容によって異なる上に、本質的な解決にはなっていないので、あまりお薦めはできない。あくまで緊急避難である。

ファイル/フォルダのプロパティ画面で圧縮を指示すれば、緊急避難的に空き容量を稼ぐことができる

なお、ファイルの圧縮はエクスプローラを使ってプロパティ画面で設定する方法だけでなく、COMPACTコマンドを使用する方法もある。

・圧縮の有無を確認|COMPACT [/S[:フォルダ名]] [ファイル名]|
・圧縮を有効にする|COMPACT /C [/S[:フォルダ名]] [ファイル名]|
・圧縮を解除する|COMPACT /U [/S[:フォルダ名]] [ファイル名]|
引数 意味
/C 圧縮を有効にする。その後で追加したファイルも圧縮対象になる
/U 圧縮を解除する。その後で追加したファイルは圧縮対象にならない
/S[:ディレクトリ] 指定したフォルダとその下のサブフォルダも操作対象にする
/A 隠しファイルやシステムファイルも表示する(省略時は無視)
/I エラーが発生しても処理を続行する(省略すると、エラー発生時に停止)
/F 圧縮済みのファイルも強制圧縮する(省略すると、圧縮済みのファイルは対象外になる)
/Q 重要なファイルだけを表示する
ファイル名 ファイル/フォルダ名を指定する。省略すると、カレントフォルダ以下の全ファイル/フォルダを対象とする

COMPACTコマンドの主な引数

ファイルの所有者変更

NTFSには、ファイルやフォルダの「所有権」という概念がある。すべてのファイルやフォルダには所有者を割り当てており、通常は、そのファイル/フォルダを作成したユーザーが所有者になる。

ところが、所有者以外のユーザーが何かしようとすると、この所有者の設定が邪魔をして、内容の表示や移動・削除などを妨げる場合がある。

実のところ、所有者を変更しなければならない場面はさほど多くないが、皆無というわけでもない。たとえば、ファイルの所有者になっていたユーザーアカウントを削除してしまい、アクセス権の変更ができなくなった場面が該当する。

そういった場面では、管理者が所有権を取得し直す必要がある。まず所有権を変更しないと、何も操作できなくなってしまうからだ。一般的には、所有権を取得して何かするのは管理者に限られると考えられるので、ここでも管理者資格を持つユーザーが作業を行うという前提で解説する。

ファイル/フォルダのプロパティ画面にある[セキュリティ]タブで[詳細設定]をクリックすると、[(フォルダ/ファイル名)のアクセス制御の設定]ダイアログを表示する。

このダイアログの上部にある[所有者]欄には、現在の所有者を表示している。さらにその右側にある[変更]をクリックすると、そのファイル/フォルダの所有者を変更できる。その際に表示するダイアログは、例のユーザー/グループ選択ダイアログだ。

このダイアログで、[子オブジェクトのアクセス許可エントリすべてを...]チェックボックスをオンにすると、サブフォルダも変更対象になる。

ファイル/フォルダのプロパティ画面で、[セキュリティ]タブの[詳細設定]をクリックすると表示するダイアログ。ここで所有者の変更が可能

また、TAKEOWNコマンド(TAKE OWNershipと覚える)で所有者を変更することもできる。引数「/A」を指定してAdministratorに所有権を移す使い方に加えて、現在ログオン中のユーザーに所有権を移す使い方もある。

TAKEOWNコマンドの基本的な構文は、以下のようになっている。

TAKEOWN /F [/A] [/R [/D ]]
引数 説明
/F 対象となるファイル/フォルダを指定する。ワイルドカードやUNCパスの指定も可能。ただし、「?」と「*」を使った混合パターンは使えない
/A 所有者を管理者(Administrator)に変更する。省略すると、所有者はログオン中のユーザーになる
/R 指定したフォルダに加えて、サブフォルダも対象にする
/D 対象としてフォルダを指定した際に、ユーザーがそのフォルダに対してアクセス権「フォルダの一覧」を持っていない場合の挙動を指定する。引数「/R」と併用したときに意味を持ち、「Y」を指定すると所有権を取得、「N」を指定すると処理をスキップする。プロンプトを省略すると、確認プロンプトは表示しない

TAKEOWNコマンドの主な引数

以下に、TAKEOWNコマンドの実行例を示す。

・フォルダ「C:\Share\Users\KojiI\foo」の所有権を、現在ログオン中のユーザーに変更する :TAKEOWN /F C:\Share\Users\KojiI\foo

・フォルダ「C:\Share\Users\KojiI\foo」にあるExcelブック(*.xls)の所有権を、現在ログオン中のユーザーに変更する :TAKEOWN /F C:\Share\Users\KojiI\foo*.xls

・フォルダ「C:\Share\Users\KojiI\foo」と、その下にあるファイル/フォルダの所有権を、Administratorに変更する :TAKEOWN /F C:\Share\Users\KojiI\foo /A /R