This script takes the name of one or more VMWare host as input and lists all configured port groups.
# List VMWare Virtual Machine Port Groups [CmdletBinding()] param([Parameter(ValueFromPipeline = $true, Mandatory = $true)][String]$VMHost) PROCESS{ $portgroups = Get-View -ViewType HostSystem -Property Config.Network.Portgroup -Filter @{"Name"="$VMHost"} foreach ($portgroup in $portgroups.Config.Network.Portgroup){ $obj = New-Object -TypeName PSObject $obj | Add-Member -MemberType 'NoteProperty' -Name VMHost -Value $VMHost $obj | Add-Member -MemberType 'NoteProperty' -Name vSwitch -Value (($portgroup.Vswitch).Split("-"))[-1] $obj | Add-Member -MemberType 'NoteProperty' -Name Key -Value (($portgroup.Key).Split("-"))[-1] Write-Output $obj } }