VMware Cloud Community
Nayax
Contributor
Contributor

VMWARE ESXi - Untick "Override" programmatically

I have posted this question on StackOverflow and even proposed a Bounty yet no one stepped up to the challenge.

If anyone can find a solution to the following, I salute you sir or ma'am:

https://stackoverflow.com/questions/70450990/vmware-esxi-untick-override-programmatically

 

0 Kudos
2 Replies
depping
Leadership
Leadership

I've looked around, but can't find anything useful. Maybe someone in the PowerCLI community can help/knows, like @LucD 

0 Kudos
LucD
Leadership
Leadership

With PowerCLI you could do it this way

 

$pgName = 'MyPGName'
$esxName = 'MyEsxName'

$esx = Get-VMHost -Name $esxName
$pg = Get-VirtualPortGroup -Name $pgName -VMHost $esx

$netSys = Get-View -Id $esx.ExtensionData.ConfigManager.NetworkSystem

$spec = New-Object VMware.Vim.HostPortGroupSpec
$spec.VswitchName = $pg.VirtualSwitch.Name
$spec.VlanId = $pg.VLanId
$spec.Name = $pgName
$spec.Policy = New-Object VMware.Vim.HostNetworkPolicy
$spec.Policy.Security = New-Object VMware.Vim.HostNetworkSecurityPolicy
$spec.Policy.ShapingPolicy = New-Object VMware.Vim.HostNetworkTrafficShapingPolicy
$spec.Policy.NicTeaming = New-Object VMware.Vim.HostNicTeamingPolicy

$netSys.UpdatePortGroup($pgName,$spec)

 


It's just a matter of blanking out all the setting properties by providing empty objects for Security, ShapingPolicy and NicTeaming.

Update:
If you want to keep one or more of the overrides (Security, ShapingPolicy, NicTeaming), don't create the empty object for that specific part, but copy the object from the Portgroup.

For example, to keep the Security settings override, you could do

$pgName = 'MyPGName'
$esxName = 'MyEsxName'

$esx = Get-VMHost -Name $esxName
$pg = Get-VirtualPortGroup -Name $pgName -VMHost $esx

$netSys = Get-View -Id $esx.ExtensionData.ConfigManager.NetworkSystem

$spec = New-Object VMware.Vim.HostPortGroupSpec
$spec.VswitchName = $pg.VirtualSwitch.Name
$spec.VlanId = $pg.VLanId
$spec.Name = $pgName
$spec.Policy = New-Object VMware.Vim.HostNetworkPolicy
$spec.Policy.Security = $pg.ExtensionData.Spec.Policy.Security
$spec.Policy.ShapingPolicy = New-Object VMware.Vim.HostNetworkTrafficShapingPolicy
$spec.Policy.NicTeaming = New-Object VMware.Vim.HostNicTeamingPolicy

$netSys.UpdatePortGroup($pgName,$spec)


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