Today I found my self looking for a way to add portgroups to a set of hosts in a cluster that have Standard switches.

I found Chris Nakagaki’s post http://tech.zsoldier.com/2013/07/add-portgroupsvlans-to-vmware-standard.html that covered this completely.

“Summary:
Wrote a simple little script to insert a portgroup into a targeted vSwitch of all VM hosts in a targeted cluster.  This is not an issue if you use distributed vSwitches.

Script:
$vCenterName = Read-Host -Prompt “Please provide name of vCenter server”
$vCenter = Connect-VIServer $vCenterName

If ($? -ne $true){
Write-Host “$($vCenterName) appears to be invalid, please rerun script w/ correct vCenter name.”
Exit
}

$ClusterName = Read-Host -Prompt “Provide name of cluster you’d like to add a new portgroup to”
$Cluster = Get-Cluster $ClusterName

If ($? -ne $true){
Write-Host “$($ClusterName) appears to be invalid, please rerun script w/ correct cluster name.”
Exit
}

$VLAN = Read-Host -Prompt “Please provide VLAN ID: (0-4094 are valid values)”
$PGName = Read-Host -Prompt “Please provide name of port group: (i.e. 10.64.120.x)”
$vSwitchName = Read-Host -Prompt “Please provide vSwitch ID you’d like to add the portgroup to: (i.e. vSwitch2)”

$TargetHosts = $Cluster | Get-VMHost
    Foreach ($VMHost in $TargetHosts)
    {
    $VMHost | Get-VirtualSwitch -Name $vSwitchName | New-VirtualPortGroup -Name $PGName -VLanId $VLAN
    }

Disconnect-VIServer $vCenter -Confirm:$false

All credit to Chris and his blog http://tech.zsoldier.com/2013/07/add-portgroupsvlans-to-vmware-standard.html