Skip to content

VirtuallyThatGuy

Anything VMware , PowerCLI, PowerShell, Automation and some Windows

Menu
  • Home
  • PowerCLI
  • VMware
  • Automation
  • Windows
  • About
Menu

Script: How to check VM Average CPU, Memory and Disk Usage VMware Using Powershell or PowerCLI – VirtuallyThatGuy

Posted on September 12, 2021December 19, 2025 by VirtuallyThatGuy

This is a quick post on how to check the average usage of a VM CPU, Memory and Disk using a powershell or powercli.

Average CPU, Memory, Network and Disk usage

 

Get-Cluster​​ |​​ Get-VM​​ |​​ Where-Object {$_.PowerState​​ -eq​​ "PoweredOn"}​​ |​​ Select​​ Name,  VMHost,​​ NumCpu,​​ MemoryGB,​​ `

@{N="CPU Usage (Average), Mhz"​​ ; E={[Math]::Round((($_​​ |​​ Get-Stat​​ -Stat​​ cpu.usagemhz.average​​ -Start​​ (Get-Date).AddDays(-30)​​ -IntervalMins​​ 5​​ |​​ Measure-Object​​ Value​​ -Average).Average),2)}},​​ `

@{N="Memory Usage (Average), %"​​ ; E={[Math]::Round((($_​​ |​​ Get-Stat​​ -Stat​​ mem.usage.average​​ -Start​​ (Get-Date).AddDays(-30)​​ -IntervalMins​​ 5​​ |​​ Measure-Object​​ Value​​ -Average).Average),2)}}​​ ,​​ `

@{N="Network Usage (Average), KBps"​​ ; E={[Math]::Round((($_​​ |​​ Get-Stat​​ -Stat​​ net.usage.average​​ -Start​​ (Get-Date).AddDays(-30)​​ -IntervalMins​​ 5​​ |​​ Measure-Object​​ Value​​ -Average).Average),2)}}​​ ,​​ `

@{N="Disk Usage (Average), KBps"​​ ; E={[Math]::Round((($_​​ |​​ Get-Stat​​ -Stat​​ disk.usage.average​​ -Start​​ (Get-Date).AddDays(-30)​​ -IntervalMins​​ 5​​ |​​ Measure-Object​​ Value​​ -Average).Average),2)}}​​ |`

Export-Csv​​ -Path​​ C:\Scripts\AverageUsage.csv

 

Get-Cluster | Get-VM | Where-Object {$_.PowerState -eq "PoweredOn"} | Select Name,  VMHost, NumCpu, MemoryGB, `
@{N="CPU Usage (Average), Mhz" ; E={[Math]::Round((($_ | Get-Stat -Stat cpu.usagemhz.average -Start (Get-Date).AddDays(-30) -IntervalMins 5 | Measure-Object Value -Average).Average),2)}}, `
@{N="Memory Usage (Average), %" ; E={[Math]::Round((($_ | Get-Stat -Stat mem.usage.average -Start (Get-Date).AddDays(-30) -IntervalMins 5 | Measure-Object Value -Average).Average),2)}} , `
@{N="Network Usage (Average), KBps" ; E={[Math]::Round((($_ | Get-Stat -Stat net.usage.average -Start (Get-Date).AddDays(-30) -IntervalMins 5 | Measure-Object Value -Average).Average),2)}} , `
@{N="Disk Usage (Average), KBps" ; E={[Math]::Round((($_ | Get-Stat -Stat disk.usage.average -Start (Get-Date).AddDays(-30) -IntervalMins 5 | Measure-Object Value -Average).Average),2)}} |`
Export-Csv -Path C:\Scripts\AverageUsage.csv

2 thoughts on “Script: How to check VM Average CPU, Memory and Disk Usage VMware Using Powershell or PowerCLI – VirtuallyThatGuy”

  1. Why says:
    April 13, 2022 at 8:45 pm

    I don’t think this is actually working as intended. If you change the (Get-Date).AddDays(-30) to any number even -365 it still returns the same result.

    Reply
    1. VirtuallyThatGuy says:
      April 25, 2022 at 2:30 pm

      what cli version are you using and vcenter version etc?

      Reply

Leave a Reply to Why Cancel reply

Your email address will not be published. Required fields are marked *

Recent Posts

  • vROps: Management Pack Troubleshooting
  • Windows AD {Active Directory} (PowerShell) samples
  • Migrate VMs Between vCentres Using Powershell or PowerCLI
  • Set VM Tools to Update Automatically on VM Reboot using powershell
  • Windows Administrator Must Have Powershell Commands

Recent Comments

  • JB on Script: How to get VM with Tag Assignment and export results to csv using PowerCLI or Powershell
  • DL on How to change VCSA root password and bypass BAD PASSWORD: it is based on a dictionary word for vCenter VCSA root account warning
  • 360coolp on How to change VCSA root password and bypass BAD PASSWORD: it is based on a dictionary word for vCenter VCSA root account warning
  • Yogesh on ESXi 8.x, 7.x, 6.x Service sfcbd-watchdog Not Running / Fails to Start – VirtuallyThatGuy
  • VirtuallyThatGuy on ESXi 8.x, 7.x, 6.x Service sfcbd-watchdog Not Running / Fails to Start – VirtuallyThatGuy

Archives

  • March 2023
  • February 2023
  • January 2023
  • December 2022
  • November 2022
  • October 2022
  • September 2022
  • August 2022
  • July 2022
  • June 2022
  • May 2022
  • April 2022
  • March 2022
  • February 2022
  • January 2022
  • December 2021
  • November 2021
  • October 2021
  • September 2021
  • August 2021
  • July 2021
  • June 2021
  • May 2021
  • April 2021
  • March 2021
  • February 2021
  • January 2021
  • December 2020
  • November 2020
  • October 2020
  • September 2020
  • May 2020
  • April 2020
  • March 2020
  • February 2020
  • January 2020
  • December 2019
  • November 2019
  • October 2019
  • September 2019
  • August 2019
  • July 2019
  • May 2019
  • April 2019
  • March 2019
  • February 2019
  • January 2019
  • December 2018
  • November 2018
  • October 2018
  • July 2018
  • June 2018
  • May 2018
  • April 2018
  • March 2018
  • February 2018
  • January 2018
  • December 2017

Categories

  • Automation
  • PowerCLI
  • VMware
  • Windows
© 2026 VirtuallyThatGuy | Powered by Superbs Personal Blog theme