Thanks, I'm not sure where im going wrong
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 New-dvSwPVLAN{
param($dvSw, $primaryNr, [int[]] $secondaryNr, [string[]] $secondaryType)
$spec = New-Object VMware.Vim.VMwareDVSConfigSpec
# Primary
$pvlan = New-Object VMware.Vim.VMwareDVSPvlanConfigSpec
$pvlan.operation = "add"
$pvlan.pvlanEntry = New-Object VMware.Vim.VMwareDVSPvlanMapEntry
$pvlan.pvlanEntry.primaryVlanId = $primaryNr
$pvlan.pvlanEntry.pvlanType = "promiscuous"
$pvlan.pvlanEntry.secondaryVlanId = $primaryNr
$spec.PvlanConfigSpec += $pvlan
# 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 = "VDS1"
$dvSw = Get-dvSwitch $datacenterName $dvSwitchName
New-dvSwPVLAN $dvSw 900 910 "community"