Diskspace checks and trend analysis
Simple Diskspace monitoring tools for home use.
Tools: VBscript & MS Access database
The script:
01 02 On Error Resume Next03 Const HARD_DISK = 304 Const adOpenStatic = 305 Const adLockOptimistic = 306 07 strNamespace = "root\cimv2"08 strDomain = "domain"09 10 strDate = FormatDateTime(Now(), 2)11 strTime = FormatDateTime(Now(), 4)12 Set objNetwork = CreateObject("Wscript.Network")13 ' =====================================================================14 arrComputers = Array("Server1","Server2","Server3")15 16 For Each strComputer In arrComputers17 Set objWMIService = GetObject("winmgmts:" & strComputer & "root\CIMV2")18 Set colDisks = objWMIService.ExecQuery _19 ("SELECT * FROM Win32_LogicalDisk Where DriveType = " & HARD_DISK & "",,48)20 21 Set objConnection = CreateObject("ADODB.Connection")22 Set objRecordSet = CreateObject("ADODB.Recordset")23 24 objConnection.Open _25 "Provider = Microsoft.Jet.OLEDB.4.0; " & _26 "Data Source = c:\scripts\diskspace_database.mdb"27 28 objRecordSet.Open "SELECT * FROM tbldiskspace" , _29 objConnection, adOpenStatic, adLockOptimistic30 For Each objDisk in colDisks31 objRecordSet.AddNew32 33 objRecordSet("server") = strComputer34 objRecordSet("domain") = strDomain35 objRecordSet("disk") = objDisk.VolumeName36 objRecordSet("drive") = objDisk.DeviceID37 objRecordSet("totalspace") = round(objDisk.Size /1024/1024,2)38 objRecordSet("freespace") = round(objDisk.FreeSpace /1024/1024,2)39 objRecordSet("percentage") = (objDisk.Freespace /objDisk.Size)*10040 objRecordSet("date") = strDate41 objRecordSet("time") = strTime42 43 objRecordSet.Update44 45 Next46 Next47 48 objRecordSet.Close49 objConnection.Close50 ' =====================================================================51
Access DB has a simple table layout, and a couple of queries and comboboxes.
Table:

Form:

Using the queries and by generating a PivotTable view, it’s easy to spot growth trends on disks.
Graph showing available free space:

- Comments Comments Off
