2

Я пытаюсь определить конкретный сетевой адаптер, подключенный к Internal vSwitch, чтобы впоследствии я мог связать роль DHCP-сервера с этим адаптером. Есть 3 сетевых адаптера, 2 подключены к внешним (подключенным к моим ноутбукам адаптерам Wi-Fi и Ethernet) vSwitches, и 1 к внутренним (используется только для виртуальных машин). Однако их нелегко определить изнутри виртуальной машины.

Name                      InterfaceDescription                    ifIndex Status       MacAddress             LinkSpeed
----                      --------------------                    ------- ------       ----------             ---------
Ethernet 2                Microsoft Hyper-V Network Adapter #2          6 Up           00-15-5D-01-64-16       270 Mbps
Ethernet 3                Microsoft Hyper-V Network Adapter #3          4 Up           00-15-5D-01-64-17        10 Gbps
Ethernet                  Microsoft Hyper-V Network Adapter             5 Disconnected 00-15-5D-01-64-15        10 Gbps

Состояние внешнего адаптера может быть подключено или нет, но обычно 1 - это (Wifi, скорее всего). В приведенном выше примере это, вероятно, адаптер "Ethernet 3", но это только потому, что мой Ethernet не подключен. Он должен работать в скрипте PowerShell (PSSession). ВМ работает под управлением Server 2016. Как определить внутренний адаптер для привязки к DHCP?

Большое спасибо!

Изменить: Я мог бы также подождать с созданием внутреннего сетевого адаптера, пока не будет готов связать с ним dhcp и сохранить ранее существующие адаптеры, прежде чем создавать внутренний адаптер.

1 ответ1

2

Я знаю, что этот вопрос устарел, но недавно я создал сценарий PowerShell для решения этой проблемы. Может быть, это будет полезно кому-то еще.

$net_adapters = Get-NetAdapter
foreach($ethernet_port in gwmi -Namespace Root\Virtualization\V2 -Class Msvm_InternalEthernetPort){
    $endpoint_physical = gwmi -Namespace Root\Virtualization\V2 -Query "ASSOCIATORS OF {$ethernet_port} WHERE ResultClass=Msvm_LANEndpoint AssocClass=Msvm_EthernetDeviceSAPImplementation"
    $endpoint_virtual = gwmi -Namespace Root\Virtualization\V2 -Query "ASSOCIATORS OF {$endpoint_physical} where ResultClass=Msvm_LANEndpoint assocclass=Msvm_ActiveConnection"
    $ethernetswitchport = gwmi -Namespace Root\Virtualization\V2 -Query "ASSOCIATORS OF {$endpoint_virtual}  WHERE ResultClass=Msvm_EthernetSwitchPort AssocClass=Msvm_EthernetDeviceSAPImplementation"
    $vswitch = gwmi -Namespace Root\Virtualization\V2 -Query "ASSOCIATORS OF {$ethernetswitchport} WHERE ResultClass=Msvm_VirtualEthernetSwitch"

    $net_adapter = $net_adapters | ?{($_).MacAddress -replace '-','' -eq $ethernet_port.PermanentAddress}
    Write-Host "Adapter:" $net_adapter.Name 
    Write-Host "Switch:" $vswitch.ElementName
    Write-Host
}

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .