Hi all,
I have 2 clusters with ESX Hosts.
Now I need to get the report for each cluster configuration and cluster have HOSTs.configuration ..I want the report like...cluster resource report and cluster's HOST report..in same
like below
Clustername |||| Total Disk Space (MB) |||| Available CPU (Mhz) |||| Total CPU (Mhz) ||||||||| Total Physical Memory (MB) ||| Available Memroy (MB)
____________________________________________________________________________________________________________ | ||||
Thks for LUC providing below report. ,i got this report from our vmware blogs,its same rreport this only for CLUSTERS
I hope u all understand my problem.
appreciate your help
Thank you,
ALDOVMWARE
Try this, it's the closest you can get.
You can't mix different objects (records) in a CSV file.
# Virtual Center Server $VCServerName = "my servername"
$creds = Get-Credential
# Some variables $portvc="443" $VC = Connect-VIServer -server $VCServerName -Credential $creds -ErrorAction Stop -port $portvc
$report = @() $clusterName = "MonitoringTestCluster"
foreach($cluster in Get-Cluster -Name $clusterName){ foreach($esx in (Get-VMHost -Location $cluster)){ $report += New-Object PSObject -Property @{ VCname = $cluster.Uid.Split(':@')[1] DCname = (Get-Datacenter -Cluster $cluster).Name
Clustername = $cluster.Name
VMHost = $esx.Name
"Number of hosts" = $esx.Count
"Total Processors" = ($esx | measure -InputObject {$_.Extensiondata.Summary.Hardware.NumCpuPkgs} -Sum).Sum
"Total Cores" = ($esx | measure -InputObject {$_.Extensiondata.Summary.Hardware.NumCpuCores} -Sum).Sum
"Current CPU Failover Capacity" = $cluster.Extensiondata.Summary.AdmissionControlInfo.CurrentCpuFailoverResourcesPercent
"Current Memory Failover Capacity" = $cluster.Extensiondata.Summary.AdmissionControlInfo.CurrentMemoryFailoverResourcesPercent
"Configured Failover Capacity" = $cluster.Extensiondata.ConfigurationEx.DasConfig.FailoverLevel
"Migration Automation Level" = $cluster.Extensiondata.ConfigurationEx.DrsConfig.DefaultVmBehavior
"DRS Recommendations" = &{$result = $cluster.Extensiondata.Recommendation | %{$_.Reason};if($result){[string]::Join(',',$result)}} "DRS Faults" = &{$result = $cluster.Extensiondata.drsFault | %{$_.Reason};if($result){[string]::Join(',',$result)}} "Migration Threshold" = $cluster.Extensiondata.ConfigurationEx.DrsConfig.VmotionRate
"target hosts load standard deviation" = "NA"
"Current host load standard deviation" = "NA" "Total Physical Memory (MB)" = ($esx | Measure-Object -Property MemoryTotalMB -Sum).Sum
"Configured Memory MB" = ($esx | Measure-Object -Property MemoryUsageMB -Sum).Sum
"Available Memroy (MB)" = ($esx | Measure-Object -InputObject {$_.MemoryTotalMB - $_.MemoryUsageMB} -Sum).Sum
"Total CPU (Mhz)" = ($esx | Measure-Object -Property CpuTotalMhz -Sum).Sum
"Configured CPU (Mhz)" = ($esx | Measure-Object -Property CpuUsageMhz -Sum).Sum
"Available CPU (Mhz)" = ($esx | Measure-Object -InputObject {$_.CpuTotalMhz - $_.CpuUsageMhz} -Sum).Sum
"Total Disk Space (MB)" = ($ds | where {$_.Type -eq "VMFS"} | Measure-Object -Property CapacityMB -Sum).Sum
"Configured Disk Space (MB)" = ($ds | Measure-Object -InputObject {$_.CapacityMB - $_.FreeSpaceMB} -Sum).Sum
"Available Disk Space (MB)" = ($ds | Measure-Object -Property FreeSpaceMB -Sum).Sum
} } } $report | Export-Csv "Q:\Cluster-Report.csv" -NoTypeInformation -UseCulture
Blog: lucd.info Twitter: @LucD22 Co-author PowerCLI Reference
Hi all,
I have 2 clusters with ESX Hosts.
Now I need to get the report for each cluster configuration and cluster have HOSTs.configuration ..I want the report like...cluster resource report and cluster's HOST report..in same
like below
Clustername |||| Total Disk Space (MB) |||| Available CPU (Mhz) |||| Total CPU (Mhz) ||||||||| Total Physical Memory (MB) ||| Available Memroy (MB)
Thks for LUC providing below report. ,i got this report from our vmware blogs,its same rreport this only for CLUSTERS
I hope u all understand my problem.
appreciate your help
Thank you,
ALDOVMWARE
Moved your thread to the PowerCLI section as this is where Luc resides normally 🙂
Try this, it's the closest you can get.
You can't mix different objects (records) in a CSV file.
# Virtual Center Server $VCServerName = "my servername"
$creds = Get-Credential
# Some variables $portvc="443" $VC = Connect-VIServer -server $VCServerName -Credential $creds -ErrorAction Stop -port $portvc
$report = @() $clusterName = "MonitoringTestCluster"
foreach($cluster in Get-Cluster -Name $clusterName){ foreach($esx in (Get-VMHost -Location $cluster)){ $report += New-Object PSObject -Property @{ VCname = $cluster.Uid.Split(':@')[1] DCname = (Get-Datacenter -Cluster $cluster).Name
Clustername = $cluster.Name
VMHost = $esx.Name
"Number of hosts" = $esx.Count
"Total Processors" = ($esx | measure -InputObject {$_.Extensiondata.Summary.Hardware.NumCpuPkgs} -Sum).Sum
"Total Cores" = ($esx | measure -InputObject {$_.Extensiondata.Summary.Hardware.NumCpuCores} -Sum).Sum
"Current CPU Failover Capacity" = $cluster.Extensiondata.Summary.AdmissionControlInfo.CurrentCpuFailoverResourcesPercent
"Current Memory Failover Capacity" = $cluster.Extensiondata.Summary.AdmissionControlInfo.CurrentMemoryFailoverResourcesPercent
"Configured Failover Capacity" = $cluster.Extensiondata.ConfigurationEx.DasConfig.FailoverLevel
"Migration Automation Level" = $cluster.Extensiondata.ConfigurationEx.DrsConfig.DefaultVmBehavior
"DRS Recommendations" = &{$result = $cluster.Extensiondata.Recommendation | %{$_.Reason};if($result){[string]::Join(',',$result)}} "DRS Faults" = &{$result = $cluster.Extensiondata.drsFault | %{$_.Reason};if($result){[string]::Join(',',$result)}} "Migration Threshold" = $cluster.Extensiondata.ConfigurationEx.DrsConfig.VmotionRate
"target hosts load standard deviation" = "NA"
"Current host load standard deviation" = "NA" "Total Physical Memory (MB)" = ($esx | Measure-Object -Property MemoryTotalMB -Sum).Sum
"Configured Memory MB" = ($esx | Measure-Object -Property MemoryUsageMB -Sum).Sum
"Available Memroy (MB)" = ($esx | Measure-Object -InputObject {$_.MemoryTotalMB - $_.MemoryUsageMB} -Sum).Sum
"Total CPU (Mhz)" = ($esx | Measure-Object -Property CpuTotalMhz -Sum).Sum
"Configured CPU (Mhz)" = ($esx | Measure-Object -Property CpuUsageMhz -Sum).Sum
"Available CPU (Mhz)" = ($esx | Measure-Object -InputObject {$_.CpuTotalMhz - $_.CpuUsageMhz} -Sum).Sum
"Total Disk Space (MB)" = ($ds | where {$_.Type -eq "VMFS"} | Measure-Object -Property CapacityMB -Sum).Sum
"Configured Disk Space (MB)" = ($ds | Measure-Object -InputObject {$_.CapacityMB - $_.FreeSpaceMB} -Sum).Sum
"Available Disk Space (MB)" = ($ds | Measure-Object -Property FreeSpaceMB -Sum).Sum
} } } $report | Export-Csv "Q:\Cluster-Report.csv" -NoTypeInformation -UseCulture
Blog: lucd.info Twitter: @LucD22 Co-author PowerCLI Reference
Slow day today Luc, 22 minutes to respond 😉
Sorry about that, I'll try to improve
Blog: lucd.info Twitter: @LucD22 Co-author PowerCLI Reference
I have now idea how to implement this power shell script :smileyblush:
Can you point me in the right direction? Do I run it on my vSphere server? I am looking for a report that tells me how many VMs I can add to our cluster(s) before I have to add more hosts(s)...
Sorry for being a script dummie
No, you can run it on whatever Windows PC or server that has PowerShell and PowerCLI installed, and that can connect to the vCenter.
See my My PS library for pointers to learning resources.
Blog: lucd.info Twitter: @LucD22 Co-author PowerCLI Reference
Thank you :smileygrin: