First up Get-FreeDiskSpace, This one will accept a ComputerName and Credentials (if desired), and it outputs the free space on all drives in GBs.

Function Get-FreeDiskSpace{
Param (
[parameter(Mandatory=$true,ValueFromPipeline=$true)][String[]]$ComputerName,
[parameter(Mandatory=$false,ValueFromPipeline=$true)]$Credential )
# Check for Credential being a valid domain\user pair and if valid use it
if ($Credential -match "^([a-z][a-z0-9.-]+)\\(?! +)([^\\/""[\]:<>+=;,?*@]+)$"){
$Creds = Get-Credential -Credential $Credential
$ComputerSpace = Get-WMIObject Win32_LogicalDisk -ComputerName $ComputerName -Credential $Creds
}# End if
else {
$ComputerSpace = Get-WMIObject Win32_LogicalDisk -ComputerName $ComputerName
}# End else
# Get Disk Info and convert each to GB
$ComputerSpace ForEach-Object { $DriveLetter = $_.DeviceID
$FreeSpace = [math]::truncate($_.freespace / 1GB)
$Output += "`t" + $DriveLetter + " " + $FreeSpace + "GB`n"
}# End ForEach
# Output results
Write-Output "$ComputerName Free Space"
Write-Output $Output
}# End Function
More to come...