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: ( [], MethodInvocationException + FullyQualifiedErrorId : DotNetMethodException
Hope somone can help
Chris
$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)
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
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
Hi Luc,
now it works. Thanks for your fast support.
Chris