<#
AboutScript
#>
param(
[Parameter(Mandatory=$false, ValueFromPipeline=$true)] [string] $ComputerName
);
BEGIN {
$jobList = @();
}
PROCESS {
$jobList += Invoke-Command -ComputerName $_ -ScriptBlock {
$result1 = Get-WmiObject Win32_logicaldisk | select __Server,DeviceID,Size,FreeSpace;
$objReturn = New-Object PSobject;
$objReturn | Add-Member -MemberType Noteproperty -Name Computername -value $result1.__Server
$objReturn | Add-Member -MemberType Noteproperty -Name DeviceID -value $result1.DeviceID
# $objReturn | Add-Member -MemberType Noteproperty -Name Size_GB -value $($result1.Size/1gb)
$objReturn | Add-Member -MemberType Noteproperty -Name Size_GB -value $result1.Size
$objReturn | Add-Member -MemberType Noteproperty -Name Free_GB -value $result1.FreeSpace
# $objReturn | Add-Member -MemberType Noteproperty -Name Free_Percent_GB -value $(($result1.FreeSpace/1gb) / ($result1.Size/1gb))
$objReturn
} -AsJob;
}
END {
$results = $jobList | Wait-Job | Receive-Job -ErrorAction SilentlyContinue
$results | Select * -excludeproperty PSComputerName,RunspaceId,PSShowComputerName
}