Start with the following, and let me know what is eventually missing?
Get-VM -PipelineVariable vm
| Get-NetworkAdapter -PipelineVariable vnic
|Select @{N='VM';E={$vm.Name}},
@{N='vNIC';E={$vnic.Name}},
ConnectionState,MacAddress,
@{N='SwitchName';E={(Get-VirtualPortgroup -Name $_.NetworkName).VirtualSwitch.Name}},
@{N='PGName';E={$_.NetworkName}},
@{N='PGPort';E={$_.ExtensionData.Backing.Port.PortKey}}