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

Jas*_*ome 3 powershell hyper-v windows-server-2012

Hyper Get-VMSwitch-V cmdlet 返回具有 NetAdapterInterfaceDescription 属性的 VMSwitch 对象,但这仅针对物理类型的交换机进行填充。

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

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

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

Jas*_*ome 5

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

$VMAdapter = Get-VMNetworkAdapter -ManagementOS -SwitchName Foo
Run Code Online (Sandbox Code Playgroud)

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

Get-NetAdapter | Where-Object { $_.DeviceID -eq $VMAdapter.DeviceId }
Run Code Online (Sandbox Code Playgroud)