Reply to Message

View discussion in a popup

Replying to:
LucD
Leadership
Leadership

Try something like this

$sStat = @{

  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

View solution in original post

Reply
0 Kudos