PCを管理するために、ディスクのサイズや空きサイズなどを調べたいことがあるだろう。多くのリモートPCを調査するなら、コマンドプロンプト上で動作するCUIのツールを使うと便利だ。wmicコマンドを使ってディスクの状態を調べる方法をまとめておく。
対象OS:Windows 7/Windows 8.1/Windows 10/Windows Server 2008 R2/Windows Server 2012/Windows Server 2012 R2/Windows Server 2016
コンピュータの運用管理などを行う場合、そのコンピュータにどのようなディスクドライブがあって、そのサイズや空き容量がいくらか、ということを知りたいことがある。
ローカルのPCならエクスプローラで簡単に確認できるが、記録として残したり、他のアプリケーションなどに結果を貼り付けたりするのならば、CUIのツールでテキストデータとして情報を取得できると便利だ。またCUIのツールなら、調査対象のPCの台数が増えてもほとんど手間は変わらない。接続先サーバを変えてコマンドを繰り返すだけだからだ。
以下のTIPSでは、PowerShellを使って、リモートPCのディスクサイズや空き領域サイズを調査する方法を紹介している。
通常はPowerShellでも構わないが、OSのバージョンや環境によっては利用できないことがある。そこで本TIPSではWMI(wmic)コマンドを使う方法を紹介する。
「WMI(Windows Management Instrumentation)」は、Windowsシステムを管理するための共通システムインタフェースであり、システム状態の取得から各種パラメーターの設定まで、さまざまな制御を行うことができる。前述のPowerShellで実行しているコマンドレットも下位ではこのサービスを呼び出している。
WMIを制御するコマンドとしてwmic.exeがあるが、WMIやwmicの基本的な使い方については以下のTIPSなどを参照していただきたい。コマンドプロンプトを開いて、「wmic volume」や「wmic logicaldisk get name,size,freespace」などのように利用する。
WMIでディスク関連の情報を取得するには以下のようなコマンドを使用する。
コマンド | 用途 |
---|---|
wmic volume | ローカルディスク上に存在する全ての論理ボリューム(システムや回復ボリュームも含む)の管理 |
wmic logicaldisk | ネットワークドライブも含めた、ユーザーから見える割り当て済みドライブの管理 |
wmic diskdrive | 物理ディスクの管理 |
wmic partition | ディスクパーティションの管理 |
ディスク/ボリューム関連のwmicコマンド wmicに続けて、WMIで取得/操作したい対象オブジェクト名(のエイリアス)を指定する。ディスク関連ではこれらの名前が利用できる。 |
wmicに続けて指定する「volume」や「logicaldisk」は、実際にはWMIで操作する対象となるオブジェクトの名前(を短く分かりやすくしたエイリアス名)である。指定できるエイリアス名の一覧は「wmic /?」で確認できる。
エイリアス名に続けて、実行したい操作コマンド(動詞)を指定する。「list」や「get」「set」「call」などがあるが、情報を表示させたいだけなら「list」を指定する。
コマンドを省略すると、デフォルトではlistが実行されるので、単に「wmic volume」や「wmic logicaldisk」を実行すると、それらのコンポーネントに関する情報が表示されることになる。
ただしこれだけだと非常に多くのデータが表示されて分かりづらいので、「list brief」や「list status」などのオプションを付けて表示する項目を制限するとよい。指定可能なlistのオプションの意味は「wmic volume list /?」「wmic logicaldisk list /?」で確認できる。
wmicコマンドの出力は上記の例のように、画面上で整列されて表示されている。だが他のアプリケーションでも利用するなら、CSVやXML、HTMLの表形式などの方が便利だろう。出力形式を変更するには、コマンドの最後に「/format:csv」や「/format:xml」「/format:htable」などを追加すればよい。指定できるフォーマット形式の一覧は、例えば「wmic volume list brief /format /?」とすると確認できる(デフォルトは「/format:table」に相当)。さらに結果をクリップボードにコピーしたければ、パイプ記号とclipコマンドを使って、「wmic 〜 | clip」のようにする。
ドライブ名と総サイズ、空き領域サイズだけを表示したい、といった場合は、listの代わりにgetを使い、表示したい項目(プロパティ)名を指定すればよい。複数の項目がある場合はカンマで区切って列挙する。getで列挙可能な項目の一覧は「wmic logicaldisk get /?」「wmic volume get /?」のようにすれば確認できる。
「wmic logicaldisk」は、デフォルトではネットワークドライブも表示するが、これを変えて、ローカルの物理ドライブだけを表示させたければ、「DriveType」プロパティが「3(=固定ディスクディスク)」となっている項目だけを選べばよい。このような選択をするために、WMIには「WQL (SQL for WMI)」という機能/構文が用意されている。SQLのWhere句のような方法でさまざまな条件を指定できる(logicaldiskだけでなく、どのコマンドにも組み合わせ可能)。
例えば、DriveTypeが「3」のものだけを表示させるには、Where句を使って「wmic logicaldisk where drivetype=3 list brief」とする。
複数の条件がある場合は、ORやANDなどを組み合わせて「wmic logicaldisk where 'name="c:" or name="f:"' list brief」のように指定する。
WMIでリモートPCのボリュームの状態を調査するには、「/node:<サーバ>」オプションを付けて実行する(注:接続先は同じActive Directoryに属するコンピュータとする。非ドメインネットワークの場合はファイアウォールやアクセス権、各種セキュリティ設定などへ対応が必要になるので、ここでは触れない)。
複数のリモートPCを調査するなら、「/node:〜」に複数のサーバ名をカンマで区切って列挙するか、コンピュータ名の一覧を記録したテキストファイルを用意して(コンピュータ名は1行ずつ改行して記入するか、カンマで区切って並べること)、「wmic /node:@list.txt volume」のようにして実行する。
Copyright© Digital Advantage Corp. All Rights Reserved.