VMware Cloud Community
ChrisGeis
Contributor
Contributor
Jump to solution

UpdateVirtualSwitch

Hi,

I try to configure an Esxi 4 Update1 host. I want to set some policies for my virtual switches. If I run the script without the nic teaming policies it runs fine. When I add the nic teaming I get the following error:

Ausnahme beim Aufrufen von "UpdateVirtualSwitch" mit 2 Argument(en): "A specified parameter was not correct. " Bei C:\Users\dv18236\AppData\Local\Temp\aa7a4910-7689-4fe2-9ed4-b8173ca94380.ps1:31 Zeichen:24 + $ns.UpdateVirtualSwitch <<<< ($vs1, $vsSpec) + CategoryInfo : NotSpecified: (Smiley Happy [], MethodInvocationException + FullyQualifiedErrorId : DotNetMethodException

Hope somone can help

Chris

param ( $esx, $vs1 )

$vs1 = "vSwitch1"

$vmhost = Get-VMHost $esx

$hostview = $vmhost | Get-View

$ns = Get-View -Id $hostview.ConfigManager.NetworkSystem

$vsConfig = $hostview.Config.Network.Vswitch | Where-Object { $_.Name -eq $vs1 }

$vsSpec = $vsConfig.Spec

$vsSpec.Policy.security = New-Object VMWare.Vim.HostNetworkSecurityPolicy

$vsSpec.Policy.Security.allowPromiscuous = $false

$vsSpec.Policy.Security.forgedTransmits = $false

$vsSpec.Policy.Security.macChanges = $false

$vsspec.Policy.ShapingPolicy = New-Object VMWare.Vim.HostNetworkTrafficShapingPolicy

$vsSpec.Policy.shapingPolicy.enabled = $false

$vsspec.policy.NicTeaming = New-object VMWare.Vim.HostNicTeamingPolicy

$vsSpec.Policy.NicTeaming.notifySwitches = $true

$vsSpec.Policy.NicTeaming.policy = "loadbalance_srcid"

$vsSpec.Policy.NicTeaming.RollingOrder = $true

$vsSpec.policy.NicTeaming.failureCriteria = New-Object VMWare.Vim.HostNicFailureCriteria

$vsSpec.policy.NicTeaming.failureCriteria.checkBeacon = $false

$ns.UpdateVirtualSwitch( $vs1, $vsSpec)

0 Kudos
1 Solution

Accepted Solutions
LucD
Leadership
Leadership
Jump to solution

Although the SDK Reference shows that all properties in the HostNicTeamingPolicy are optional, I noticed in the past that you have to provide a value for each property.

Try this

param ( [string]$esx, [string]$vs1 )

$vs1 = "vSwitch1"

$vmhost = Get-VMHost $esx
$hostview = $vmhost | Get-View
$ns = Get-View -Id $hostview.ConfigManager.NetworkSystem
$vsConfig = $hostview.Config.Network.Vswitch | Where-Object { $_.Name -eq $vs1 }

$vsSpec = $vsConfig.Spec
$vsSpec.Policy.security = New-Object VMWare.Vim.HostNetworkSecurityPolicy
$vsSpec.Policy.Security.allowPromiscuous = $false
$vsSpec.Policy.Security.forgedTransmits = $false
$vsSpec.Policy.Security.macChanges = $false

$vsspec.Policy.ShapingPolicy = New-Object VMWare.Vim.HostNetworkTrafficShapingPolicy
$vsSpec.Policy.shapingPolicy.enabled = $false

$vsspec.policy.NicTeaming = New-object VMWare.Vim.HostNicTeamingPolicy
$vsSpec.Policy.NicTeaming.notifySwitches = $true
$vsSpec.Policy.NicTeaming.policy = "loadbalance_srcid"
$vsSpec.Policy.NicTeaming.ReversePolicy = $false

$vsSpec.Policy.NicTeaming.RollingOrder = $true
$vsSpec.Policy.NicTeaming.NicOrder = New-Object VMware.Vim.HostNicOrderPolicy
$vsSpec.Policy.NicTeaming.NicOrder.activeNic = "vmnic0","vmnic1"
$vsSpec.Policy.NicTeaming.NicOrder.standbyNic = $null

$vsSpec.Policy.NicTeaming.failureCriteria = New-Object VMWare.Vim.HostNicFailureCriteria
$vsSpec.Policy.NicTeaming.failureCriteria.checkBeacon = $false
$vsSpec.Policy.nicTeaming.failureCriteria.checkSpeed = "minimum"
$vsSpec.Policy.nicTeaming.failureCriteria.speed = 10
$vsSpec.Policy.nicTeaming.failureCriteria.checkDuplex = $false
$vsSpec.Policy.nicTeaming.failureCriteria.fullDuplex = $false
$vsSpec.Policy.nicTeaming.failureCriteria.checkErrorPercent = $false
$vsSpec.Policy.nicTeaming.failureCriteria.percentage = 0

$ns.UpdateVirtualSwitch( $vs1, $vsSpec) 

Note that you will have to provide the correct values, especially for NicOrder properties.

The above is just a sample run !

____________

Blog: LucD notes

Twitter: lucd22


Blog: lucd.info  Twitter: @LucD22  Co-author PowerCLI Reference

View solution in original post

0 Kudos
2 Replies
LucD
Leadership
Leadership
Jump to solution

Although the SDK Reference shows that all properties in the HostNicTeamingPolicy are optional, I noticed in the past that you have to provide a value for each property.

Try this

param ( [string]$esx, [string]$vs1 )

$vs1 = "vSwitch1"

$vmhost = Get-VMHost $esx
$hostview = $vmhost | Get-View
$ns = Get-View -Id $hostview.ConfigManager.NetworkSystem
$vsConfig = $hostview.Config.Network.Vswitch | Where-Object { $_.Name -eq $vs1 }

$vsSpec = $vsConfig.Spec
$vsSpec.Policy.security = New-Object VMWare.Vim.HostNetworkSecurityPolicy
$vsSpec.Policy.Security.allowPromiscuous = $false
$vsSpec.Policy.Security.forgedTransmits = $false
$vsSpec.Policy.Security.macChanges = $false

$vsspec.Policy.ShapingPolicy = New-Object VMWare.Vim.HostNetworkTrafficShapingPolicy
$vsSpec.Policy.shapingPolicy.enabled = $false

$vsspec.policy.NicTeaming = New-object VMWare.Vim.HostNicTeamingPolicy
$vsSpec.Policy.NicTeaming.notifySwitches = $true
$vsSpec.Policy.NicTeaming.policy = "loadbalance_srcid"
$vsSpec.Policy.NicTeaming.ReversePolicy = $false

$vsSpec.Policy.NicTeaming.RollingOrder = $true
$vsSpec.Policy.NicTeaming.NicOrder = New-Object VMware.Vim.HostNicOrderPolicy
$vsSpec.Policy.NicTeaming.NicOrder.activeNic = "vmnic0","vmnic1"
$vsSpec.Policy.NicTeaming.NicOrder.standbyNic = $null

$vsSpec.Policy.NicTeaming.failureCriteria = New-Object VMWare.Vim.HostNicFailureCriteria
$vsSpec.Policy.NicTeaming.failureCriteria.checkBeacon = $false
$vsSpec.Policy.nicTeaming.failureCriteria.checkSpeed = "minimum"
$vsSpec.Policy.nicTeaming.failureCriteria.speed = 10
$vsSpec.Policy.nicTeaming.failureCriteria.checkDuplex = $false
$vsSpec.Policy.nicTeaming.failureCriteria.fullDuplex = $false
$vsSpec.Policy.nicTeaming.failureCriteria.checkErrorPercent = $false
$vsSpec.Policy.nicTeaming.failureCriteria.percentage = 0

$ns.UpdateVirtualSwitch( $vs1, $vsSpec) 

Note that you will have to provide the correct values, especially for NicOrder properties.

The above is just a sample run !

____________

Blog: LucD notes

Twitter: lucd22


Blog: lucd.info  Twitter: @LucD22  Co-author PowerCLI Reference

0 Kudos
ChrisGeis
Contributor
Contributor
Jump to solution

Hi Luc,

now it works. Thanks for your fast support.

Chris

0 Kudos