Hyper-V Reporting Script

Serhat AKINCI, a Hyper-V MVP, has just posted this very useful script:

https://gallery.technet.microsoft.com/Hyper-V-Reporting-Script-4adaf5d0

In his own words:

It can be difficult to monitor and assess resources in large Hyper-V environments. This PowerShell based script helps you to understand virtualization inventory, capacity and general resource availability in your Standalone or Clustered Hyper-V Environment.

Highlights

  • More than 2600+ lines of PowerShell, HTML and CSS code examples.
  • Creates a plain but detailed and user-friendly HTML report which is compatible with all modern browsers.
  • Provides more detailed information via tooltips in the HTML report. (cells with asterisks and highlights)
  • Checks and installs required runtime environment prerequisites like Hyper-V and Clustering PowerShell.
  • Collects information by using standard Hyper-V and Clustering PowerShell cmdlets and custom WMI queries.
  • Shows alerts in the report for certain situations (utilizations, VM checkpoints, replication status, etc.)
  • Can be used directly from command-line or as a scheduled Windows task.
  • Supports report delivery via e-mail with advanced options. (authentication, TLS/SSL, multiple recipients)
  • Includes a mode that reports only alerts in the Hyper-V environment. (aka Highlights Only mode)
  • Advanced error handling and logging. (Console messages and log file)

You can see an full example report here: https://www.serhatakinci.com/files/get-hypervreport-v1-0-demo-output.html

Very neat stuff!

Cheers,
Ben

Comments

  • Anonymous
    January 21, 2015
    Very nice! One glitch. In my report there are many VMs listed without a disk "Does not have a virtual disk". They should as they are online and running. Its a clustered 2 node 2012 R2 environment.

  • Anonymous
    July 06, 2015
    Hi, How can I use this script remotely? Running Invoke-Command and then -ScriptBlock {...} does not succeed... Getting "ERROR Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))"