$servers = @("server1", "server2")
$myDrives = @()
Get-WmiObject Win32_Volume -ComputerName $servers -credential domain\username | ForEach-Object {
$drive = $_
$item = [PSCustomObject] @{
Server = $drive.SystemName
Name = $drive.Name
DeviceType = switch ($drive.DriveType)
{
0 {"Unknown"}
1 {"No Root Directory"}
2 {"Removable Disk"}
3 {"Local Disk"}
4 {"Network Drive"}
5 {"Compact Disk"}
6 {"RAM"}
}
SizeGB = "{0:N2}" -f ($drive.Capacity/1GB)
FreeSpaceGB = "{0:N2}" -f ($drive.FreeSpace/1GB)
}
# I only want to look at local disks (DriveType 3)
# I also want to weed out tiny boot drives less than 1 GB
if (($drive.DriveType -eq 3 ) -and ($drive.Capacity -gt 1000000000) )
{
$myDrives += $item
}
}
# Dashes
Write-Host $('-' * 70)
$myDrives | Format-Table -AutoSize