Uruchamiamy powershell i dodajmy przystawkę VMM poleceniem:
Add-PSSnapin Microsoft.SystemCenter.VirtualMachineManager
Ustawiamy nazwy serwer VMM oraz klastra Hyper-V który nas interesuje:
$VMMServerName = "vmm.lab.local" $HVClusterName = "hvcluster.lab.local"
Poleceniem Get-VMHostCluster pobieramy informacje o interesującym nas klastrze:
$HVCluster = Get-VMHostCluster -Name $HVClusterName -VMMServer $VMMServerName
Poniższym kodem przechodzimy po kolei przez każdy node klastra i listujemy maszyny wirtualne znajdujące się na nim:
foreach($HVNode in $HVCluster.Nodes) { $HVNode.VMs | Select Name, VMHost }
Skrypt w całej okazałości:
Add-PSSnapin Microsoft.SystemCenter.VirtualMachineManager $VMMServerName = "vmm.lab.local" $HVClusterName = "hvcluster.lab.local" $HVCluster = Get-VMHostCluster -Name $HVClusterName -VMMServer $VMMServerName foreach($HVNode in $HVCluster.Nodes) { $HVNode.VMs | Select Name, VMHost }
Tak wygląda przykładowy wynik skryptu:
Name VMHost ---- ------ VM-HUB hv1.lab.local VM-TS-1-1 hv1.lab.local VM-TS-1-2 hv1.lab.local VM-TS-1-3 hv1.lab.local VM-TS-1-4 hv2.lab.local VM-TS-2-1 hv2.lab.local VM-TS-2-2 hv2.lab.local REMOTEAPP hv2.lab.local
W przypadku usunięcia “-Name $HVClusterName” ze skryptu będą wylistowane wszystkie maszyny z klastrów zarządzanych przez VMM.