$VMs = Get-DatastoreCluster WINDOWS1* | Get-Datastore | Get-VM $VMInfo = $VMs | Select Name, @{n='ProvisionedSpaceGBr';e={[math]::round($_.ProvisionedSpaceGB,2)}}, @{n='UsedSpaceGBr';e={[math]::round($_.UsedSpaceGB,2)}}, @{n = 'IndPer'; e = { If (($_ | get-harddisk | where-object Persistence -eq IndependentPersist).count -gt 0) { $true }Else { $false } } }, @{n='Datastore';e={($_ | Get-HardDisk).Filename.split(' ')[0]}} $IndPerVMs = $VMInfo | where-object name -ne "itdhpnvid.nd.gov" | where-object IndPer -eq $true | measure-object -Sum ProvisionedSpaceGBr, UsedSpaceGBr $PersistVMs = $VMInfo | where-object name -ne "itdhpnvid.nd.gov" | where-object IndPer -eq $false | measure-object -sum ProvisionedSpaceGBr, UsedSpaceGBr # manual sort data $VMInfo | where-object Name -ne itdhpnvid.nd.gov | where-object IndPer -eq $true | sort-object UsedSpaceGBr -Descending | ft # i don't remember specifics why this exists: $result=@() $VMs | ForEach-Object{ $disks = $_ | Get-HardDisk | select *,@{n='Datastore';e={$_.Filename.split(' ')[0]}} $obj=[PSCustomObject]@{ Name = $_.Name; Count = @($disks.Datastore | select -unique).count; Datastores = $disks.Datastore | select -unique; } $result += $obj } $result $BisSQLVMs=[System.Collections.ArrayList]@() $BisSQLVMs += Get-DatastoreCluster WINDOWS1* | Get-VM -Tag 'SQL MSDN' -Server itdvmvc1.nd.gov | where-object Name -ne 'itdhpnvid.nd.gov' | sort-object Name $BisSQLVMs += Get-DatastoreCluster WINDOWS1* | Get-VM -Tag 'SQL Enterprise Academic' -Server itdvmvc1.nd.gov | where-object Name -ne 'itdhpnvid.nd.gov' | sort-object Name $BisSQLVMs += Get-DatastoreCluster WINDOWS1* | Get-VM -Tag 'SQL Standard' -Server itdvmvc1.nd.gov | where-object Name -ne 'itdhpnvid.nd.gov' | sort-object Name $BisSQLVMs = $BisSQLVMs | sort-object -Descending ProvisionedSpaceGB $MdnSQLVMs=[System.Collections.ArrayList]@() $MdnSQLVMs += Get-DatastoreCluster WINDOWS2* | Get-VM -Tag 'SQL MSDN' -Server itdvmvc2.nd.gov | sort-object Name $MdnSQLVMs += Get-DatastoreCluster WINDOWS2* | Get-VM -Tag 'SQL Enterprise Academic' -Server itdvmvc2.nd.gov | sort-object Name $MdnSQLVMs += Get-DatastoreCluster WINDOWS2* | Get-VM -Tag 'SQL Standard' -Server itdvmvc2.nd.gov | sort-object Name $MdnSQLVMs = $MdnSQLVMs | sort-object -Descending ProvisionedSpaceGB