<# 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 }