Try something like this
Stat = 'cpu.usage.average','mem.usage.average','net.usage.average','disk.usage.average'
Start = (Get-Date -Hour 10 -Minute 0 -Second 0).AddDays(-1)
Finish = (Get-Date -Hour 10 -Minute 0 -Second 0).AddDays(-1).AddHours(12)
Instance = ''
MaxSamples = [int]::MaxValue
Entity = Get-VM -Name (Get-Content ".\servers.txt")
ErrorAction = 'SilentlyContinue'
}
Get-Stat @sStat |
Group-Object -Property {$_.Entity.Name} |
ForEach-Object -Process {
$_.Group | Group-Object -Property Timestamp |
ForEach-Object -Process {
New-Object -TypeName PSObject -Property ([ordered]@{
VM = $_.Group[0].Entity.Name
Timestamp = $_.Group[0].Timestamp
CpuAvg = ($_.Group | where{$_.MetricId -eq 'cpu.usage.average'}).Value
MemAvg = ($_.Group | where{$_.MetricId -eq 'mem.usage.average'}).Value
DiskAvg = ($_.Group | where{$_.MetricId -eq 'disk.usage.average'}).Value
NetAvg = ($_.Group | where{$_.MetricId -eq 'net.usage.average'}).Value
})
}
} | Export-Csv -Path .\report.csv -NoTypeInformation -UseCulture
Blog: lucd.info Twitter: @LucD22 Co-author PowerCLI Reference