Hi LucD,
I found also this interesting:
#ForEach ($DataCentre in Get-Datacenter){
# ForEach ($Cluster in ($DataCentre | Get-Cluster))
Foreach ($cluster in (Get-Cluster | Sort Name)){
$clustername = Get-cluster $cluster
$Clusters = Get-cluster $cluster | Get-View
IF ($cluster | Get-VMHost | Select-Object Count) {
$Clusters | % {
$VMHostsView = $null
$VMHostsView = Get-View $_.Host -Property Name, Hardware, Config
$VMss = $clustername | Get-VM
$HostCount = ($VMHostsView | Measure-Object).Count
IF ($HostCount -gt 0){
$VMCount = 0 + ($VMss | Measure-Object).Count
IF ($VMCount){
$VMsPerHost = [math]::round(($VMCount/$HostCount), 1)
$vCPU = 0 + ($VMss | measure-object -sum -property NumCPU).Sum
$allocatedram = 0 + ($VMss | measure-object -sum -property memorygb).Sum
$avgrampervm = [math]::round(($allocatedram/$VMCount), 1)
$pCPUSocket = ($VMHostsView | % { $_.Hardware.CPUInfo.NumCpuPackages } | Measure-Object -sum).Sum
$TpCPUSocket = $pCPUSocket
$pCPUCore = ($VMHostsView | % { $_.Hardware.CPUInfo.NumCpuCores } | Measure-Object -sum).Sum
$CPUSpeed = ($VMHostsView |% {[math]::round($_.Hardware.CpuInfo.Hz / 1000000, 0)}| Measure-Object -sum).Sum
$OverallCPUSpeed = ($CPUSpeed / $HostCount)
$TotalCPU = (($VMHostsView |% {[math]::round($_.Hardware.CpuInfo.Hz / 1000000, 0)}| Measure-Object -sum).Sum * $pCPUCore)
$vCPUPerpCPUCore = [math]::round(($vCPU/$pCPUCore), 1)
$TotalClusterRAMGB =[math]::round((Get-cluster $cluster | get-vmhost | % { $_ } | measure-object -property memorytotalGB -sum).sum)
$TotalClusterRAMusageGB =[math]::round((Get-cluster $cluster | get-vmhost | % { $_ } | measure-object -property memoryusageGB -sum).sum)
$TotalClusterRAMUsagePercent = [math]::round(($TotalClusterRAMusageGB/$TotalClusterRAMGB)*100)
$TotalClusterRAMFreeGB = [math]::round(($TotalClusterRAMGB-$TotalClusterRAMUsageGB))
$TotalClusterRAMReservedGB = [math]::round(($TotalClusterRAMGB/100)*15)
$TotalClusterRAMAvailable = [math]::round(($TotalClusterRAMFreeGB-$TotalClusterRAMReservedGB))
$newvmcount = [math]::round(($TotalClusterRAMAvailable/$avgrampervm))
New-Object PSObject |
Add-Member -pass NoteProperty "ClusterName" $clustername.name |
Add-Member -pass NoteProperty "TotalClusterHostCount" $HostCount |
Add-Member -pass NoteProperty "TotalClusterVMCount" $VMCount |
Add-Member -pass NoteProperty "TotalClusterVM/Host" $VMsPerHost |
Add-Member -pass NoteProperty "TotalClusterpCPUSocket" $TpCPUSocket |
Add-Member -pass NoteProperty "TotalClusterpCPUCore" $pCPUCore |
Add-Member -pass NoteProperty "TotalClustervCPUCount" $VCPU |
Add-Member -pass NoteProperty "TotalClustervCPU/pCPUCore" $vcpuperpcpucore |
Add-Member -pass NoteProperty "TotalClusterRAMGB" $TotalClusterRAMGB |
Add-Member -pass NoteProperty "TotalClusterRAMUSAGEPercent" $TotalClusterRAMUsagePercent |
Add-Member -pass NoteProperty "TotalClusterRAMUsageGB" $TotalClusterRAMusageGB |
Add-Member -pass NoteProperty "TotalClusterRAMFreeGB" $TotalClusterRAMfreeGB |
Add-Member -pass NoteProperty "TotalClusterRAMReservedGB(15%)" $TotalClusterRAMReservedGB |
Add-Member -pass NoteProperty "RAM Available for NEW VMs in GB" $TotalClusterRAMAvailable |
Add-Member -pass NoteProperty "Allocated RAM per VM on an average" $avgrampervm |
Add-Member -pass NoteProperty "NEW VM's that can be provisioned based on Average RAM per VM" $newvmcount |
Add-Member -pass NoteProperty "Total CPU MHz" $TotalCPU |
Add-Member -pass NoteProperty "CPU Speed MHz" $OverallCPUSpeed
}
}
}
}}
I would like to set this to make csv and/or send by email.