Load balance agents

This will setup new primary and failover servers for agents reporting to a gateway. It assumes you only have 1 failover server and you can filter for the agents you want by domain name.

Change Get-SCOMGatewayManagementServer to Get-SCOMManagementServer for agents reporting to management servers.

$Server1="GW1_FQDN"
$Server2="GW2_FQDN"
$Primary=Get-SCOMGatewayManagementServer -Name $Server1
$Failover=Get-SCOMGatewayManagementServer -Name $Server2
$Agents=Get-SCOMAgent | where {$_.PrincipalName -match "AGENT_FQDN"} | sort PrincipalName
foreach ($Agent in $Agents) {
$Count+=1
$Fqdn=$Agent.DisplayName
$AgentName=Get-SCOMAgent -Name $Fqdn
if($Count %2 -eq 0) {
write-host "$Count, Agent: $Fqdn, Primary: $Server1, Failover: $Server2"
Set-SCOMParentManagementServer -Agent $AgentName -FailoverServer $NULL # Need this or you get error "The failover server xxx cannot be the same as the primary server."
Set-SCOMParentManagementServer -Agent $AgentName -PrimaryServer $Primary
Set-SCOMParentManagementServer -Agent $AgentName -FailoverServer $Failover
} else {
write-host "$Count, Agent: $Fqdn, Primary: $Server2, Failover: $Server1"
Set-SCOMParentManagementServer -Agent $AgentName -FailoverServer $NULL
Set-SCOMParentManagementServer -Agent $AgentName -PrimaryServer $Failover
Set-SCOMParentManagementServer -Agent $AgentName -FailoverServer $Primary
}}

Comments