Simple script using the cluster command to return a cluster group to a prefered node.
# ******************************************************************** # Scriptnaam: AUTOFAILBACK.PS1 # Geschreven_door: Tim van Kooten Niekerk # Versie: 20100412 # Info: Failback to preferred node (TST en ACC omgeving) # ******************************************************************** # Constanten en andere string waarden... [string]$sClusterGroupCmd = "cluster group" [string]$sOutputLOGFile = "AutoFailBack.log" [string]$sDateTime = Get-Date -f o $sDateTime + ";START;>>> Start controle en AutoFail-Back procedure..." | Out-File -Filepath $sOutputLOGFile function fAutoFailBack([string]$sClusterGroup1, [string]$sPreferredNodeCG1) { [string]$sDateTime = Get-Date -f o [string]$sClusterGroup1Clean = $sClusterGroup1.Replace("", "") $vResult1 = Invoke-Expression $sClusterGroupCmd $vResult2 = $vResult1 | select-string -Pattern $sClusterGroup1 | select-string -Pattern "Online" | select-string -Pattern $($sPreferredNodeCG1) if ($vResult2.LineNumber -gt 0) { $vResultFIN = $sDateTime + ";OK;" + $vResult2.Line } else { [string]$sClusterGroupCmdFO = $sClusterGroupCmd + " `"" + $($sClusterGroup1Clean) + "`" `/moveto:" + $($sPreferredNodeCG1) $vResultB1 = Invoke-Expression $sClusterGroupCmdFO $vResultB2 = $vResultB1 | select-string -Pattern $sClusterGroup1 | select-string -Pattern "Online" | select-string -Pattern $($sPreferredNodeCG1) if ($vResultB2.LineNumber -gt 0) { $vResultFIN = $sDateTime + ";FO-OK;" + $vResultB2.Line } else { $vResultC1 = Invoke-Expression $sClusterGroupCmd $vResultC2 = $vResultC1 | select-string -Pattern $sClusterGroup1 $vResultFIN = $sDateTime + ";FO-FAIL;" + $vResultC2.Line } } # Schrijf resultaat weg naar Logbestand $vResultFIN | Out-File -Filepath $sOutputLOGFile -Append } fAutoFailBack "CLUSTERGROUPNAME" "NODENAME" fAutoFailBack "CLUSTERGROUPNAME2" "NODENAME"