$report1 = Get-Datastore "yyyyyy" |Get-VM |
Select Name,
@{N="GuestUsageGB";E={[math]::Round(($_.Guest.Disks | %{$_.CapacityGB - $_.FreeSpaceGB} | Measure-Object -Sum | Select -ExpandProperty Sum),1)}},
@{N=“GuestCapacityGB";E={[math]::Round(($_.Guest.Disks | %{ $_.Capacity / 1GB} | Measure-Object -Sum | Select -ExpandProperty Sum),2)}},
@{N=“FreeSpaceGB";E={[math]::Round(($_.Guest.Disks | %{ $_.FreeSpace / 1GB} | Measure-Object -Sum | Select -ExpandProperty Sum),2)}},
@{N="GuestUsage(%)";E={[math]::Round(($_.Guest.Disks | %{ 100-(100*($_.FreeSpaceGB / $_.CapacityGB))} | Measure-Object -Average | Select -ExpandProperty Average),2)}},
@{N='SnapshotSizeGB';E={[math]::Round((Get-Snapshot -VM $_ | Measure-Object -Property SizeGB -sum).Sum,2)}}
$sum = $report1 | Measure-Object -sum "GuestUsageGB","GuestCapacityGB",“FreeSpaceGB"
$row = "" | Select "GuestUsageGB","GuestCapacityGB",“FreeSpaceGB"
$row."GuestUsageGB" = 'Total'
$row."GuestUsageGB" = $sum | where{$_.Property -eq "GuestUsageGB"} | select -ExpandProperty Sum
$row."GuestCapacityGB" = $sum | where{$_.Property -eq "GuestCapacityGB"} | select -ExpandProperty Sum
$row."FreeSpaceGB" = $sum | where{$_.Property -eq "FreeSpaceGB"} | select -ExpandProperty Sum
$report1 += $row
$report1 | export-csv VMHDD_REPORT_$datefile.csv -NoTypeInformation
I am using the above script to get Guest HDD usage but having issue at (Guestusage %) percentage, its not providing the correct values.