# Define source and destination hosts
$SourceHost = "source.host.com"
$DestinationHost = "destination.host.com"
# Get the virtual switch
$vswitch = Get-VirtualSwitch -Name "vswitch0" -Vmhost $SourceHost
# Get port groups from source vSwitch
$portGroups = Get-VirtualPortGroup -VirtualSwitch $vswitch
# Create port groups on destination host
foreach ($portGroup in $portGroups) {
# Check if the port group already exists on the destination
$existingPortGroup = Get-VirtualPortGroup -Name $portGroup.Name -VirtualSwitch (Get-VirtualSwitch -Name "vswitch0" -Vmhost $DestinationHost) -ErrorAction SilentlyContinue
if ($existingPortGroup -eq $null) {
# If the port group doesn't exist, create it
New-VirtualPortgroup -Name $portGroup.Name -VlanId $portGroup.VlanId -VirtualSwitch (Get-VirtualSwitch -Name "vswitch0" -Vmhost $DestinationHost) -Confirm:$false
Write-Host "Port Group '$($portGroup.Name)' created on $($DestinationHost)"
} else {
# If the port group exists, skip creation
Write-Host "Port Group '$($portGroup.Name)' already exists on $($DestinationHost), skipping."
}
}