If you're on 2008R2 or 2012 you can use sys.dm_os_volume_stats to query disk information.
It would look something like this:
SELECT DISTINCT d.logical_volume_name
,d.volume_mount_point
,CAST(d.total_bytes / 1024 / 1024.0 AS INT) AS TotalMB
,CAST(d.available_bytes / 1024 / 1024.0 AS INT) AS FreeMB
FROM sys.master_files f
CROSS APPLY sys.dm_os_volume_stats(f.database_id, f.file_id) d
One small caveat: it extracts information only for the disks that contain a data or log file.
Hope this helps
Gianluca
-- Gianluca Sartori