### Skript zum automatischen Shutdown eines Failover ### Clusters durch eine USV (In meinem Fall Eaton) ### 11.11.2020 - Helau :) ### Jan Kappen - j.kappen@building-networks.de # # Shutdown der VMs, die auf diesem Knoten betrieben werden $info = hostname $VMs = Get-ClusterResource | ? ResourceType -eq "Virtual Machine" | select OwnerGroup, OwnerNode Write-Host -ForegroundColor Green "VMs auf diesem Knoten, die heruntergefahren werden:" Write-Host -ForegroundColor Green "###################################################" foreach ($VM in $VMs) { if ($VM.OwnerNode -eq $info) { Write-Host $VM.OwnerGroup Stop-VM -Name $VM.OwnerGroup -Force } } # Cluster herunterfahren auf dem aktuellen Besitzer der Cluster-IP $ClusterOwnerNode = Get-ClusterResource | ? ResourceType -eq "IP Address" | select OwnerNode if ($info -match $ClusterOwnerNode.OwnerNode) { Write-Host -ForegroundColor Green "Dieser Knoten ist der aktuelle Master und leitet den Shutdown-Prozess ein" do { $VMs = Get-ClusterResource | ? ResourceType -eq "Virtual Machine" if ($VMs.State -match "Online") { Write-Host -ForegroundColor Green "Mindestens eine VM noch online, warten auf" sleep 5 } } until ($VMs.State -notmatch "Online") Write-Host -ForegroundColor Green "Alles aus, Shutdown vom Cluster kann durchgeführt werden" Stop-Cluster } # Lokalen Server herunterfahren sleep 60 Stop-Computer -ComputerName localhost -Force