Hyper-VMicrosoftPowershellWindows Server

Generating a Hyper-V VM Report: A PowerShell Scripting Guide

Microsoft’s Hyper-V offers a powerful platform for creating and managing virtual machines (VMs), but with great power comes great responsibility. Specifically, the responsibility to keep track of your VMs and their configurations. This article introduces a comprehensive PowerShell script designed to generate a detailed report of all virtual machines and their configurations within Hyper-V, making this task significantly easier and more efficient.

Understanding the Task

Hyper-V, Microsoft’s virtualization platform, enables the creation and management of virtual machines on a Windows server. For IT administrators and professionals, keeping an eye on the status and configuration of these VMs is paramount. This is where PowerShell scripting comes into play. PowerShell is a task automation and configuration management framework from Microsoft, consisting of a command-line shell and a scripting language.

The PowerShell Script for Hyper-V VM Reporting

The following PowerShell script is meticulously crafted to retrieve all virtual machines hosted on Hyper-V, along with their configurations, such as VM name, state, CPU usage, assigned memory, and more. This script not only aids in monitoring but also in auditing and planning capacities within your virtual environment.

Recommended For You:  How to Remotely Manage Hyper-V VMs Using PowerShell Direct
# Ensure the Hyper-V PowerShell module is loaded
Import-Module Hyper-V

# Retrieve all VMs and their configurations
$VMs = Get-VM

# Create a report of VMs and their details
$VMReport = @()
foreach ($VM in $VMs) {
    $VMReport += [PSCustomObject]@{
        VMName = $VM.Name
        State = $VM.State
        CPUUsage = $VM.CPUUsage
        AssignedMemory = $VM.MemoryAssigned / 1MB -as [int]
        Status = $VM.Status
        Uptime = $VM.Uptime

# Display the report in the console
$VMReport | Format-Table -AutoSize

# Optionally, export the report to a CSV file
$VMReport | Export-Csv -Path "HyperV_VM_Report.csv" -NoTypeInformation

How to Use This Script

  1. Open PowerShell with administrative privileges.
  2. Ensure the Hyper-V module is installed on your system. If not, you can install it by running Install-WindowsFeature -Name Hyper-V-PowerShell.
  3. Copy and paste the script into the PowerShell window and press Enter.
  4. The script will execute and present a table of all VMs along with their configurations. Optionally, you can find the CSV report in the specified location.


The provided PowerShell script simplifies the task of generating a report on all virtual machines and their configurations in Hyper-V, offering a valuable tool for IT administrators and professionals. By leveraging this script, you can easily monitor, audit, and plan your virtual environment, ensuring efficient and effective management of resources.

Recommended For You:  How To Disable Windows Defender Permanently in Windows 10

Muhammad Faizan

Hi, My name is Muhammad Faizan and i have spent last 15 years working as System Administrator mainly with Microsoft Technologies. I am MCSE, MCTP, MCITP, certified professional. I love scripting and Powershell is the scripting language i am in love with.

Related Articles

Leave a Reply

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

Check Also
Back to top button