My WMI SDK is at work, but this line looks suspious to me...

code:
$colDisks = $objWMIService.ExecQuery("Select * from Win32_LogicalDisk Where DriveType = " $HARD_DISK $ "")

This seems to work a little better...
code:
$strComputer = "."
$objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\"+$strComputer+"\root\cimv2")
$DiskSet = $objWMIService.ExecQuery("select * from Win32_LogicalDisk where DriveType=3")

For each $Disk in $DiskSet
? " Disk Name: "+$Disk.Name
? " Disk Space: "+$Disk.Size
? "Disk Freespace: "+$Disk.FreeSpace ?
Next

Also, I'm unsure about the: $ "" business you had at the end of the query. For a query like that, if you are using a variable at the end quotes are unnecessary.