I previously posted a script on how to change a distributed switch’s default settings. I’ve updated it to work on vSphere 5.5 and made some other improvements.
$vDSName = '' # Enter the name of the vDS here $loadBalancingPolicy = 'loadbalance_ip' # IP hash $numActiveUplinkPorts = 2 $activeUplinkNames = @('Uplink 1', 'Uplink 2') $vds = Get-VDSwitch $vDSName $spec = New-Object VMware.Vim.DVSConfigSpec $spec.configVersion = $vds.ExtensionData.Config.ConfigVersion $spec.defaultPortConfig = New-Object VMware.Vim.VMwareDVSPortSetting $uplinkTeamingPolicy = New-Object VMware.Vim.VmwareUplinkPortTeamingPolicy # Set load balancing policy to IP hash $uplinkTeamingPolicy.policy = New-Object VMware.Vim.StringPolicy $uplinkTeamingPolicy.policy.inherited = $false $uplinkTeamingPolicy.policy.value = $loadBalancingPolicy # Configure uplinks. If an uplink is not specified, it is placed into the ‘Unused Uplinks’ section. $uplinkTeamingPolicy.uplinkPortOrder = New-Object VMware.Vim.VMwareUplinkPortOrderPolicy $uplinkTeamingPolicy.uplinkPortOrder.inherited = $false $uplinkTeamingPolicy.uplinkPortOrder.activeUplinkPort = New-Object System.String[] ($numActiveUplinkPorts) for ($i = 0; $i -lt $activeUplinkNames.length; $i++) { $uplinkTeamingPolicy.uplinkPortOrder.activeUplinkPort[$i] = $activeUplinkNames[$i] } # Set notify switches to true $uplinkTeamingPolicy.notifySwitches = New-Object VMware.Vim.BoolPolicy $uplinkTeamingPolicy.notifySwitches.inherited = $false $uplinkTeamingPolicy.notifySwitches.value = $true # Set to failback to true $uplinkTeamingPolicy.rollingOrder = New-Object VMware.Vim.BoolPolicy $uplinkTeamingPolicy.rollingOrder.inherited = $false $uplinkTeamingPolicy.rollingOrder.value = $true # Set network failover detection to “link status only” $uplinkTeamingPolicy.failureCriteria = New-Object VMware.Vim.DVSFailureCriteria $uplinkTeamingPolicy.failureCriteria.inherited = $false $uplinkTeamingPolicy.failureCriteria.checkBeacon = New-Object VMware.Vim.BoolPolicy $uplinkTeamingPolicy.failureCriteria.checkBeacon.inherited = $false $uplinkTeamingPolicy.failureCriteria.checkBeacon.value = $false $spec.DefaultPortConfig.UplinkTeamingPolicy = $uplinkTeamingPolicy $vds.ExtensionData.ReconfigureDvs_Task($spec)