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

Get-VMSwitch Hyper-V cmdlet返回具有NetAdapterInterfaceDescription属性的VMSwitch对象,但仅为Physical类型的交换机填充此对象.

对于Internal类型的开关,此属性为空.主机上的虚拟适配器和VMSwitch之间唯一明显的关系是名称 – 例如,对于交换机“Foo”,默认适配器名称是“vEthernet(Foo)”.

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

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

最佳答案
我最终偶然发现了答案.我可以用:

$VMAdapter = Get-VMNetworkAdapter -ManagementOS -SwitchName Foo

这将返回具有DeviceId属性的VMInternalNetworkAdapter对象.然后我可以使用以下方法可靠地获取相应的MSFT_NetAdapter对象:

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

转载注明原文:可靠地将Hyper-V内部交换机与PowerShell的主机网络适配器相关联 - 代码日志