VBネタ


えーっと、「データベースのあるドライブが空き容量なくて、

しょっちゅー業務ごと、ストップしちゃうんだけどー」

という管理者からの問合せが...

うーむ、空き容量が不足した時に何かメッセージでも

出しちゃうか。っつーことでWebを彷徨うこと数分

(最初っからWMIに備わっているのは知っていた)

WMIでWin32_LogicalDiskを使用すると見れるという情報を

げっつ。で、嫌いなExecQueryを使用しているサンプルばっかり。



そ れ じ ゃ ぁ 何 が 備 わ っ て い る か

 わ か ら ん で し ょ ー が っ ! ! !



っつーことで、ρ(・д・*)コレ

ちなみにほしかったのはFreeSpaceプロパティね。


Private Sub subPrintDiskInfo()
Const DRIVE_UNKNOWN As Integer = 0 '0 = Unknown
Const DRIVE_NO_ROOT_DIRECTORY As Integer = 1 '1 = No Root Directory
Const DRIVE_REMOVABLE_DISK As Integer = 2 '2 = Removable Disk
Const DRIVE_LOCAL_DISK As Integer = 3 '3 = Local Disk
Const DRIVE_NETWORK_DRIVE As Integer = 4 '4 = Network Drive
Const DRIVE_COMPACT_DISC As Integer = 5 '5 = Compact Disc
Const DRIVE_RAM_DISK As Integer = 6 '6 = RAM Disk
Dim objWMILocator As New WbemScripting.SWbemLocator
Dim objWMIService As WbemScripting.SWbemServices
Dim objWin32_LogicalDisk As WbemScripting.SWbemObject
Dim objDisk As WbemScripting.SWbemObject
Dim objDiskProperty As WbemScripting.SWbemProperty
Dim strServerName As String
Dim strUserName As String
Dim strPassword As String

Set objWMIService = objWMILocator.ConnectServer(strServerName, , strUserName, strPassword)
Set objWin32_LogicalDisk = objWMIService.Get("Win32_LogicalDisk")

For Each objDisk In objWin32_LogicalDisk.Instances_
Debug.Print "★★★★★★★★★★★★★★★★★★★★★★★★★"
For Each objDiskProperty In objDisk.Properties_
Debug.Print "[" & objDiskProperty.Name & "]" & objDiskProperty.Value
Next
Debug.Print
Next
End Sub