$capacityinfo = @() foreach ($cluv in (Get-View -ViewType ClusterComputeResource)) { $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) $CluCpuUsage = ./Get-Stat2.ps1 -entity $cluv -stat "cpu.usagemhz.average" -Start (Get-Date).adddays(-7) -Finish (Get-Date) -interval HI2 $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) $CluMemUsage = ./Get-Stat2.ps1 -entity $cluv -stat mem.consumed.average -Start (Get-Date).adddays(-7) -Finish (Get-Date) -interval HI2 $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