Hey, its all good found the problem, i had it set to New-dvSwPVLAN rather than Set-dvSwPVLAN, Thanks again for all your help guys, really appreciate it. This will make it much easier for us to migrate to the vDS with PVLANS Image may be NSFW.
Clik here to view.
function Get-dvSwitch{
param($dcName,$dvSwName)
$dcNetFolder = Get-View (Get-Datacenter $dcName | Get-View).NetworkFolder
$found = $null
foreach($net in $dcNetFolder.ChildEntity){
if($net.Type -eq "VmwareDistributedVirtualSwitch"){
$temp = Get-View $net
if($temp.Name -eq $dvSwName){
$found = $temp
}
}
}
$found
}
function Set-dvSwPVLAN{
param($dvSw, $primaryNr, [int[]] $secondaryNr, [string[]] $secondaryType)
$spec = New-Object VMware.Vim.VMwareDVSConfigSpec
# Primary
$pvlan = New-Object VMware.Vim.VMwareDVSPvlanConfigSpec
# Secondaries
for($i = 0;$i -lt $secondaryNr.Count; $i++){
$pvlan = New-Object VMware.Vim.VMwareDVSPvlanConfigSpec
$pvlan.operation = "add"
$pvlan.pvlanEntry = New-Object VMware.Vim.VMwareDVSPvlanMapEntry
$pvlan.pvlanEntry.primaryVlanId = $primaryNr
$pvlan.pvlanEntry.pvlanType = $secondaryType[$i].ToLower()
$pvlan.pvlanEntry.secondaryVlanId = $secondaryNr[$i]
$spec.PvlanConfigSpec += $pvlan
}
$dvSw.UpdateViewData()
$spec.ConfigVersion = $dvSw.Config.ConfigVersion
$taskMoRef = $dvSw.ReconfigureDvs_Task($spec)
$task = Get-View $taskMoRef
while("running","queued" -contains $task.Info.State){
$task.UpdateViewData("Info")
}
}
$datacenterName = "DC1"
$dvSwitchName = "DVS1"
$dvSw = Get-dvSwitch $datacenterName $dvSwitchName
Set-dvSwPVLAN $dvSw 900 918 "community"
Set-dvSwPVLAN $dvSw 900 916 "community"
Set-dvSwPVLAN $dvSw 900 920 "community"