ドライブレターのないボリュームの容量を取得する

2008/03/09 | ラベル: , , | このエントリーを含むはてなブックマークを表示

WMIを使ってディスク容量を取得するサンプルはたくさんあるけど、ドライブレターのない論理ボリュームの容量を取得するものがない。また、Win32_LogicalDisk クラスでも取得できない。

いろいろ調べて試した結果、Win32_Volume クラスで取得できることが分かった。以下は「C:\Users\xxx」にマウントしたボリュームの総容量と空き容量を取得する例。

strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_Volume Where Caption = 'C:\\Users\\xxx'")
For Each objItem In colItems
    WScript.Echo "Name: " & objItem.Name
    WScript.Echo "Capacity: " & objItem.Capacity
    WScript.Echo "Free Space: " & objItem.FreeSpace
    WScript.Echo
Next

ExecQuery メソッドでは LIKE も使えるので、

Select * from Win32_Volume Where Caption LIKE 'C:\\%'

という書き方もできる。

参考リンク

0 コメント: