I have prepared some command for pulling result of memory and cpu utilization of vm frkm vcenter.
How can we setup this command for specified Vms, like save one notepad which VMs we need and run script from that notepad.
Import-Module VMware.VimAutomation.Core Connect-VIServer -Server wbllonpvmisvc1.intl.warnerbros.com $myCol = @() $start = (Get-Date).AddDays(-30) $finish = Get-Date ##$cluster= Get-Content "C:\Cluster Peformance\Cluster.txt" ##$objServers = Get-Cluster $cluster | Get-VM ##$objServers = Get-Content "C:\Cluster Peformance\hi.txt" $objServers = Get-VM foreach ($server in $objServers) { if ($server.guest.osfullname -ne $NULL){ $stats = get-stat -Entity $server -Stat "cpu.usage.average","mem.usage.average" -Start $start -Finish $finish $ServerInfo = "" | Select-Object vName, OS, Mem_GB, AvgMem_Per, MaxMem_Per, vCPU, AvgCPU_Per, MaxCPU_Per, Host $ServerInfo.vName = $server.name $ServerInfo.OS = $server.guest.osfullname $ServerInfo.Host = $server.vmhost.name $ServerInfo.Mem_GB = $server.memoryGB $ServerInfo.AvgMem_Per = $("{0:N2}" -f ($stats | Where-Object {$.MetricId -eq "mem.usage.average"} | Measure-Object -Property Value -Average).Average) $ServerInfo.MaxMem_Per = $("{0:N2}" -f ($stats | Where-Object {$.MetricId -eq "mem.usage.average"} | Measure-Object -Property Value -Maximum).Maximum) $ServerInfo.vCPU = $server.numcpu $ServerInfo.AvgCPU_Per = $("{0:N2}" -f ($stats | Where-Object {$.MetricId -eq "cpu.usage.average"} | Measure-Object -Property Value -Average).Average) $ServerInfo.MaxCPU_Per = $("{0:N2}" -f ($stats | Where-Object {$.MetricId -eq "cpu.usage.average"} | Measure-Object -Property Value -Maximum).Maximum) $mycol += $ServerInfo } } $myCol | Sort-Object vName | Export-Csv "V_report.csv" -NoTypeInformation