Szybkie sprawdzenie powershellem rozmieszczenia maszyn na klastrze Hyper-V zarządzanym VMM
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.