Я попытался взять с узла Hyper-V (Hyper-V 2012) с помощью этой команды IP-адрес:
Get-VM | select -ExpandProperty networkadapters | select vmname, ipaddress
Дело в том, что на выходе я беру только назначенные частные IP-адреса, а не общедоступные IP-адреса, которые есть у некоторых виртуальных машин. Есть идеи, почему у меня эта проблема?
Также есть ли способ получить тот же вывод и идентификатор Vlan, который у меня есть в настройках моей виртуальной машины? Чтобы получить Vlan с конкретной виртуальной машины, я могу сделать это с помощью этого
Get-VM 'Name of the VM' | Get-VMNetworkAdapterVlan | select AccessVlanId
Все это есть на Hyper-V 2012, я хочу это и для Hyper-V 2008 R2. Поэтому могут потребоваться некоторые изменения в командах.
Ненавижу просто вставлять здесь ссылки, но вам стоит изучить библиотеку Джеймса О'Нейла PowerShell для Hyper-V 2008R2. Мог бы сэкономить вам время.
Поскольку у меня нет Hyper-V 2012 для тестирования, я могу хотя бы ответить на часть вашего вопроса, касающуюся PowerShell:
Get-VM | select -ExpandProperty networkadapters |
Foreach-Object {
$_ | AddMember -MemberType NoteProperty -Name VLAN -PassThru
-Value ($_ | Get-VMNetworkAdapterVlan).AccessVlanID
} | ft vmname, ipaddress, vlan