将Hyper-V内部交换机与PowerShell的主机networking适配器可靠关联

Get-VMSwitch Hyper-V cmdlet返回具有NetAdapterInterfaceDescription属性的VMSwitch对象,但仅为物理types的交换机填充此对象。

对于内部types的开关,此属性为空白。 主机上的虚拟适配器与VMSwitch之间唯一明显的关系是名称 – 例如,对于交换机“Foo”,默认的适配器名称是“vEthernet(Foo)”。

但是,networking适配器可以重命名。 我在Get-NetAdapter的输出上Get-NetAdapter了与交换机相关的其他值,但是我没有取得任何成功。

是否有其他cmdlet或API可以将内部Hyper-V虚拟交换机与主机networking适配器相匹配?

我最终自己偶然发现了答案。 我可以用:

 $VMAdapter = Get-VMNetworkAdapter -ManagementOS -SwitchName Foo 

这将返回一个具有DeviceId属性的VMInternalNetworkAdapter对象。 然后我可以可靠地得到相应的MSFT_NetAdapter对象使用:

 Get-NetAdapter | Where-Object { $_.DeviceID -eq $VMAdapter.DeviceId }