Reply to Message

View discussion in a popup

Replying to:
LucD
Leadership
Leadership

That requires some changes to your code.

$VMS = Get-Content C:\temp\servers2.txt

Get-VM -Name $vms -PipelineVariable vm |
ForEach-Object -Process {
  Get-VirtualPortGroup -VM $vm -PipelineVariable pg |
  Select-Object @{n = "VMName"; e = { $vm } }, Name,
  @{N = 'VlanId'; E = {
      if ($pg -is [VMware.VimAutomation.ViCore.Impl.V1.Host.Networking.DistributedPortGroupImpl]) {
        if ($pg.ExtensionData.Config.DefaultPortConfig.Vlan -is [VMware.Vim.VmwareDistributedVirtualSwitchPvlanSpec]) {
          $pg.ExtensionData.Config.DefaultPortConfig.Vlan.PvlanId
        } elseif ($pg.ExtensionData.Config.DefaultPortConfig.Vlan -is [VMware.Vim.VmwareDistributedVirtualSwitchVlanSpec]) {
          if ($pg.ExtensionData.Config.DefaultPortConfig.Vlan.VlanId -is [VMware.Vim.NumericRange[]]) {
            [string]::Join(',', ($_.ExtensionData.Config.DefaultPortConfig.Vlan.VlanId | ForEach-Object { "$($_.Start)-$($_.End)" }))
          } else {
            $pg.ExtensionData.Config.DefaultPortConfig.Vlan.VlanId
          }
        }
      } else { $pg.VlanId } }
  },
  @{N = 'MAC'; E = { ($vm.Guest.Nics | where{$_.NetworkName -eq $pg.Name}).Macaddress  -join '|' } }
}


Blog: lucd.info  Twitter: @LucD22  Co-author PowerCLI Reference