Я возвращаю IP / MA C адреса из Hyper-V
для виртуальных машин с несколькими IP / MA C адресами. Я получаю дублированные имена виртуальных машин, IE, если виртуальная машина имеет 2 IP / MA C Я получаю 2 одинаковых имени виртуальной машины, если он имеет 3 IP / MA C, а затем получает 3 одинаковых имени виртуальной машины, VMname сохраняется в $virtm
переменной
$vms=Get-VM | Where { $_.State –eq ‘Running’ } | Select-Object -ExpandProperty Name
foreach($vm in $vms) {
$out=Get-VMNetworkAdapter -vmname $vm | select VMName, MacAddress, IPAddresses
$virtm=($out.VMName | ForEach-Object {
$_ | Get-Unique
})
$ip=($out.IPAddresses | ForEach-Object {
$_ | ? {$_ -notmatch ':'}
}) -join " "
$mac = ($out.MacAddress | ForEach-Object {
$_.Insert(2,":").Insert(5,":").Insert(8,":").Insert(11,":").Insert(14,":")
}) -join ' '
Write-Output "$virtm, $ip, $mac"
}
Токовый выход
OAP80 OAP80, 192.168.1.45 192.168.2.45, 00:15:5D:58:12:5E 00:15:5D:58:12:5F
Желаемый выход
OAP80, 192.168.1.45 192.168.2.45, 00:15:5D:58:12:5E 00:15:5D:58:12:5F