В Get-VMSwitch
Командлет Hyper-V возвращает объекты VMSwitch, у которых есть свойство NetAdapterInterfaceDescription, но оно заполняется только для переключателей типа Physical.
Для коммутаторов типа Internal это свойство не заполнено. Единственная очевидная связь между виртуальным адаптером на хосте и VMSwitch - это имя - например, для коммутатора «Foo» имя адаптера по умолчанию - «vEthernet (Foo)».
Однако сетевые адаптеры можно переименовать. Я искал другие значения на выходе Get-NetAdapter
которые соотносятся с переключателями, но я не добился успеха.
Существуют ли другие командлеты или API, которые могут сопоставить внутренний виртуальный коммутатор Hyper-V с сетевым адаптером хоста?
В конце концов, я сам наткнулся на ответ. Я могу использовать:
$VMAdapter = Get-VMNetworkAdapter -ManagementOS -SwitchName Foo
Это вернет VMInternalNetworkAdapter
объект с DeviceId
свойство. Тогда я могу надежно получить соответствующий MSFT_NetAdapter
объект, использующий:
Get-NetAdapter | Where-Object { $_.DeviceID -eq $VMAdapter.DeviceId }