Disabling Netflow with PowerCLI

Today I was asked if there was a script to disable Netflow on a VDPortgroup, the below was a couple of quick and dirty scripts to first of all list all VDPortgroups and if they have Netflow enabled, the second was to disable Netflow for a VDPortgroup or a number of VDPortgroups.

This may help with a known issue on ESXi 5.1 when Netflow is enabled: http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2042370

List all VDPortGroups and if Netflow is enabled

Get-VDPortgroup | Select Name, VirtualSwitch, @{Name="NetflowEnabled";Expression={$_.Extensiondata.Config.defaultPortConfig.ipfixEnabled.Value}}

image

Disable Netflow for a VDPortgroup or a number of VDPortGroups

Function Disable-PGNetflow {
	[CmdletBinding()]
	Param (
		[Parameter(ValueFromPipeline=$true)]
		$DVPG
	)
	Process {
		Foreach ($PG in $DVPG) {
			$spec = New-Object VMware.Vim.DVPortgroupConfigSpec
			$spec.configversion = $PG.Extensiondata.Config.ConfigVersion
			$spec.defaultPortConfig = New-Object VMware.Vim.VMwareDVSPortSetting
			$spec.defaultPortConfig.ipfixEnabled = New-Object VMware.Vim.BoolPolicy
			$spec.defaultPortConfig.ipfixEnabled.inherited = $false
			$spec.defaultPortConfig.ipfixEnabled.value = $false

			$PGView = Get-View -Id $PG.Id
			$PGView.ReconfigureDVPortgroup_Task($spec)
		}
	}
}

# Disable Netfow for a VDPortgroup
Get-VDPortgroup DPortGroup | Disable-PGNetflow

image

4 thoughts on “Disabling Netflow with PowerCLI

  1. Christopher Newell

    For those who are trying to enable NetFlow on vDS ports the following changes are required.

    $spec.defaultPortConfig.ipfixEnabled.inherited = $false
    $spec.defaultPortConfig.ipfixEnabled.value = $true

  2. Pingback: Обзор блогов от 29.07.13 | vMind.ru

  3. Pingback: Disabling Netflow with PowerCLI (Virtu-Al) | VMware News

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.