Поиск VM c одинаковыми MAC-адресами

Чтобы быстро найти VM c одинаковыми MAC-адресами, предлагаем использовать скрипт ниже. Он записывает пары «Ключ - Значение» («MacAddress - VM») в хеш-таблицу и для каждой VM ищет повторение MAC-адреса в этой таблице.

  1. В Windows PowerShell ISE откройте область сценариев.

  2. Добавьте в область скрипт:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    $Table = @{}
    
    foreach($VM in Get-CIVM){
        Get-CINetworkAdapter -VM $VM | where {$_.MacAddress} | %{
            if($Table.ContainsKey($_.MacAddress)){
                Write-Host $_.MacAddress "in" $Table[$_.MacAddress] "and" $VM.Name
            }
            else{
                $Table[$_.MacAddress] = $VM.Name
            }
        }
    }
    
  3. Запустите скрипт кнопкой Выполнить сценарий.

Output
00:50:56:01:a4:9a in VM-1 and VM-2
00:50:56:01:a7:bd in VM-1 and VM-2
00:50:56:01:a4:9a in VM-1 and VM-3

Если в организации есть VM c одинаковыми названиями, настройте вывод vApp и виртуальных ЦОД, в которых размещаются VM. Для этого дополните шестую строку скрипта выше.

Write-Host $_.MacAddress "in" $Table[$_.MacAddress] "(vApp:" (Get-civm $Table[$_.MacAddress]).VApp"; VDС:" (Get-civm $Table[$_.MacAddress]).OrgVdc ") and" $VM.Name "(vApp:" $VM.VApp "; VDС:" $VMOrgVdc ")"

Обратите внимание, чем больше параметров будет выводить скрипт, тем дольше он будет выполняться.