Yes, unfortunately some of have to run Windows too.  Here's my
version, it logs directly to my SQL server.  I then monitor it with a
daily ColdFusion job, and even have a semi-attractive page to view. 
Replace username, password, servername, stored procedure name, though
an inline query could also be used if logging to another db.

Part of the reason for this method is so that I can track daily
changes with the stored procedures.  If my disk space consumption
increases significantly or becones dangerously low I want to be
alerted.

I run mine as a scheduled task on each server, though I might change
that with some of Sam's code!

Drive size is obtainable through `objDisk.Size`.

timo

--
Const adOpenStatic = 3
Const adLockOptimistic = 3

Set objConnection = CreateObject("ADODB.Connection")
Set objRecordSet = CreateObject("ADODB.Recordset")

objConnection.Open _
    "Provider=SQLOLEDB;Data Source=SERVERNAME;" & _
        "Trusted_Connection=No;Initial Catalog=CATALOG;" & _
             "User ID=USERNAME;Password=PASSWORD;"


strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colDisks = objWMIService.ExecQuery _
    ("Select * from Win32_LogicalDisk")

for each objDisk in colDisks
	If objDisk.DriveType = 3 Then
		objRecordSet.Open "STORED_PROC_NAME" & objDisk.SystemName & ", '" &
objDisk.Name & "', " & objDisk.FreeSpace & ", " & objDisk.Size , _
			objConnection, adOpenStatic, adLockOptimistic
	End If
Next
--