Listing all your VHD and VHDX files from your Hyper-V Clusters in Windows Server 2012

Hi again,

In my last post I explained how to list all your virtual disks from one standalone Hyper-V Host. Today I want to give you an example of how to get all your virtual disks information from all your Hyper-V hosts that are part of a cluster.

Powershell in Windows Server 2012 is amazing and with this small script you can quickly get the information

 $nodes = Get-ClusterNode
 Foreach($node in $nodes)
 {
 }

The ouput will be the same as the last script for standalone Hyper-V hosts, but you can filter by those attributes that may be relevant for you instead of dumping all the information. For example

$nodes = Get-ClusterNode

Foreach($node in $nodes)

{

    $VMs=Get-VM -ComputerName $node.name

    foreach($VM in $VMs )

    {

        $vm.VMName

        Get-VHD -ComputerName $node.Name -VMId $VM.VMId | ft vhdtype,path -AutoSize

    }

}

Note:

Constrained delegation for CIFs will be required if your virtual disks are stored on SMB shares to make this script work. If not, the script will only list those virtual disks of the host from where you are running the script and will give you an Access Denied for the other hosts.

Stay tuned. After christmas I will blog how to get this information using WMI.

Merry Christmas and Happy 2013!