Scripting.FileSystemObject.Driveの使用例
scanDrives.vbs:
VBスクリプト。 Scripting.FileSystemObjectオブジェクトを作成してDrivesと
EnumNetworkDrivesを使用して、マイコンピュータがマウントしている各ドライブをスキャンして
各ドライブの情報をCSV形式で出力する
使い方:
下のscanDrives.vbsをテキストエディタにコピペして、scanDrives.vbsで保存して実行。
次の例は、C:\scanDrives.vbsに保存した場合の使用方法。
c:\>cscript /nologo c:\scanDrives.vbs
Letter,Type,Total[Byte],Used[Byte],Available[Byte],Usage[%],Path
C,Local HDD Drive,52428795904,48322715648,4106080256,7.83%,-
D,Local HDD Drive,246629265408,151006982144,95622283264,38.77%,-
E,Local HDD Drive,20971515904,10150678528,10820837376,51.60%,-
F is not ready.
Z,Network Drive,-,-,-,-,\\fileserver01\Shared\
Y,Network Drive,-,-,-,-,\\fileserver02\NASShare
Z,Network Drive,-,-,-,-,\\remoteservr01\c$
scanDrives.vbs
==================================================================================
'--------------------------------------------------------==================================================================================
' Scripting.FileSystemObject.Drive Object
'--------------------------------------------------------
' Property | 機能
'----------------|---------------------------------------
' AvailableSpace | 利用可能な空きスペースの大きさを取得する
' DriveLetter | ドライブ名(「C」など)を取得する
' DriveType | ドライブの種類を取得する (0は不明なドライブ、1はリムーバブル・ディス
' | ク、2はハードディスク、3はネットワーク・ドライブ、4はCD-ROM、5はRAM
' | ディスクを表す。)
' FileSystem | ドライブのファイルシステムを取得する
' FreeSpace | ディスクの空きスペースの大きさを取得する
' IsReady | ドライブが準備できているかどうかを取得する
' Path | コロン付きのドライブ名を取得する
' RootFolder | ルートフォルダを表すFolderオブジェクトを取得する
' SerialNumber | ディスクのシリアルナンバーを取得する
' ShareName | ネットワーク・ドライブの共有名を取得する
' TotalSize | ディスクの総容量を取得する
' VolumeName | ドライブのボリューム名を取得する
'---------------------------------------------------------
Set fso1 = CreateObject("Scripting.FileSystemObject")
Set drives = fso1.Drives
Set fso2 = CreateObject ("WScript.Network")
Set networkdrives = fso2.EnumNetworkDrives
WScript.Echo "Letter" & "," & "Type" & "," & "Total[Byte]" & "," & "Used[Byte]" & "," & "Available[Byte]" & "," & "Usage[%]" & "," & "Path"
For Each drive in drives
letter = drive.DriveLetter
if(drive.isReady) Then
Select Case drive.DriveType
Case "1"
diskusage = FormatPercent (drive.AvailableSpace/drive.TotalSize)
WScript.Echo letter & "," & "Removable HDD Drive" & "," & drive.TotalSize & "," & drive.TotalSize - drive.AvailableSpace & "," & drive.AvailableSpace & "," & diskusage & "," & "-"
WScript.Echo letter
diskusage = ""
Case "2"
diskusage = FormatPercent (drive.AvailableSpace/drive.TotalSize)
WScript.Echo letter & "," & "Local HDD Drive" & "," & drive.TotalSize & "," & drive.TotalSize - drive.AvailableSpace & "," & drive.AvailableSpace & "," & diskusage & "," & "-"
diskusage = ""
Case "3"
path = ""
For i = 0 to networkdrives.Count - 1 Step 2
if networkdrives.Item(i) = letter & ":" Then
path = networkdrives.Item(i + 1)
End if
Next
WScript.Echo letter & "," & "Network Drive" & "," & "-" & "," & "-" & "," & "-" & "," & "-" & "," & path
Case "4"
WScript.Echo letter & "," & "Disc Drive" & "," & "-" & "," & "-" & "," & "-" & "," & "-" & "," & "-"
Case Else
WScript.Echo letter & "," & "Unknown Drive Type" & "," & "-" & "," & "-" & "," & "-" & "," & "-" & "," & path
End Select
Else
WScript.Echo letter & " is not ready."
End if
Next