$capacityinfo = @() foreach ($cluv in (Get-Cluster|Get-View)) { $clucapacity = "" |Select ClusterName, "NumVmLeft[CPU]", "NumVmLeft[MEM]" #CPU $DasRealCpuCapacity = $cluv.Summary.EffectiveCpu - (($cluv.Summary.EffectiveCpu*$cluv.Configuration.DasConfig.FailoverLevel)/$cluv.Summary.NumEffectiveHosts) $CluCpuUsage = get-stat -entity $cluv.name -stat cpu.usagemhz.average -Start (Get-Date).adddays(-7) -Finish (Get-Date) $CluCpuUsageAvg = ($CluCpuUsage|Where-object{$_.value -gt ($CluCpuUsage|Measure-Object -average -Property value).average}|Measure-Object -Property value -Average).Average $VmCpuAverage = $CluCpuUsageAvg/(Get-Cluster $cluv.name|Get-VM).count $CpuVmLeft = [math]::round(($DasRealCpuCapacity-$CluCpuUsageAvg)/$VmCpuAverage,0) #MEM $DasRealMemCapacity = $cluv.Summary.EffectiveMemory - (($cluv.Summary.EffectiveMemory*$cluv.Configuration.DasConfig.FailoverLevel)/$cluv.Summary.NumEffectiveHosts) $CluMemUsage = get-stat -entity $cluv.name -stat mem.consumed.average -Start (Get-Date).adddays(-7) -Finish (Get-Date) $CluMemUsageAvg = ($CluMemUsage|Where-object{$_.value -gt ($CluMemUsage|Measure-Object -average -Property value).average}|Measure-Object -Property value -Average).Average/1024 $VmMemAverage = $CluMemUsageAvg/(Get-Cluster $cluv.name|Get-VM).count $MemVmLeft = [math]::round(($DasRealMemCapacity-$CluMemUsageAvg)/$VmMemAverage,0) $clucapacity.ClusterName = $cluv.name $clucapacity."NumVmLeft[CPU]" = "$CpuVmLeft" + " [" + "$([math]::round($VmCpuAverage,0))" + " Mhz]" $clucapacity."NumVmLeft[MEM]" = "$MemVmLeft" + " [" + "$([math]::round($VmMemAverage,0))" + " MB]" $capacityinfo += $clucapacity } $capacityinfo