Collect vSwicth Information Using vSphere Power CLI

In this  Post  sharing the Script to collect the Virtual Standard Switch Information from vSPhere power cli to CSV file .

You can Modify  the Location of the file to save and directly apply to vSPhere Cli Window or  you can save this as .PS1  extension and run  CLI window .

Script 


&{foreach($esx in Get-VMHost){
$vNicTab = @{}
$esx.ExtensionData.Config.Network.Vnic | %{
$vNicTab.Add($_.Portgroup,$_)
}
foreach($vsw in (Get-VirtualSwitch -VMHost $esx)){
foreach($pg in (Get-VirtualPortGroup -VirtualSwitch $vsw)){
Select -InputObject $pg -Property @{N=”ESX”;E={$esx.name}},
@{N=”vSwitch”;E={$vsw.Name}},
@{N=”Active NIC”;E={[string]::Join(‘,’,$vsw.ExtensionData.Spec.Policy.NicTeaming.NicOrder.ActiveNic)}},
@{N=”Standby NIC”;E={[string]::Join(‘,’,$vsw.ExtensionData.Spec.Policy.NicTeaming.NicOrder.StandbyNic)}},
@{N=”Portgroup”;E={$pg.Name}},
@{N=”VLAN”;E={$pg.VLanId}},
@{N=”Device”;E={if($vNicTab.ContainsKey($pg.Name)){$vNicTab[$pg.Name].Device}}},
@{N=”IP”;E={if($vNicTab.ContainsKey($pg.Name)){$vNicTab[$pg.Name].Spec.Ip.IpAddress}}}
}
}
}} | Export-Csv C:\vswitch.csv -NoTypeInformation -UseCulture


Result 

Result of the script will shown like below .

ESX vSwitch Active NIC Standby NIC Portgroup VLAN Device IP
ESX-TEST-01 vSwitch0 vmnic0,vmnic1,vmnic2,vmnic3 Management Network 101 vmk0 192.168.1.11
ESX-TEST-01 vSwitch0 vmnic0,vmnic1,vmnic2,vmnic3 VLAN_114 114
ESX-TEST-01 vSwitch0 vmnic0,vmnic1,vmnic2,vmnic3 VLAN_131 131
ESX-TEST-01 vSwitch0 vmnic0,vmnic1,vmnic2,vmnic3 VLAN_132 132
ESX-TEST-01 vSwitch0 vmnic0,vmnic1,vmnic2,vmnic3 VLAN_133 133
ESX-TEST-02 vSwitch0 vmnic0,vmnic1,vmnic2,vmnic3 Management Network 101 vmk0 192.168.1.12
ESX-TEST-02 vSwitch0 vmnic0,vmnic1,vmnic2,vmnic3 VLAN_114 114
ESX-TEST-02 vSwitch0 vmnic0,vmnic1,vmnic2,vmnic3 VLAN_131 131
ESX-TEST-02 vSwitch0 vmnic0,vmnic1,vmnic2,vmnic3 VLAN_132 132
ESX-TEST-02 vSwitch0 vmnic0,vmnic1,vmnic2,vmnic3 VLAN_133 133