
Hyper Get-VMSwitch
-V cmdlet 返回具有 NetAdapterInterfaceDescription 属性的 VMSwitch 对象,但该属性仅适用于物理类型的交换机。
对于内部类型的交换机,此属性为空。主机上的虚拟适配器和 VMSwitch 之间唯一明显的关系是名称 - 例如,对于交换机“Foo”,默认适配器名称为“vEthernet (Foo)”。
但是,网络适配器可以重命名。我查找了与交换机相关的输出上的其他值,Get-NetAdapter
但没有成功。
是否有其他 cmdlet 或 API 可以将内部 Hyper-V 虚拟交换机与主机网络适配器匹配?
答案1
我最终自己偶然找到了答案。我可以使用:
$VMAdapter = Get-VMNetworkAdapter -ManagementOS -SwitchName Foo
这将返回一个VMInternalNetworkAdapter
具有属性的对象DeviceId
。然后我可以MSFT_NetAdapter
使用以下命令可靠地获取相应的对象:
Get-NetAdapter | Where-Object { $_.DeviceID -eq $VMAdapter.DeviceId }