VMWare: как найти виртуальные машины по IP или MAC-адресу?
В интерфейсе клиента VMWare vSphere вы можете искать виртуальные машины только по их именам. Но в некоторых случаях необходимо найти конкретную виртуальную машину VMWare по ее IP-адресу или MAC-адресу (оборудование сетевой карты).
Проще это сделать с помощью VMWare PowerCLI, который позволяет осуществлять поиск по различным параметрам виртуальной машины.
Запустите консоль PowerCLI и подключитесь к серверу vCenter или хосту ESXi, используя следующую команду:
Connect-VIServer vcenter-hq.active-directory.ru -User administratorЧтобы найти виртуальную машину по ее MAC-адресу, используйте следующие команды:
$vmMAC="00:52:32:DD:12:91”
Get-VM | Get-NetworkAdapter | Where-Object {$_.MacAddress -eq $vmMAC } | Select-Object Parent,Name,MacAddress
Как видите, команда вернула имя виртуальной машины с ее MAC-адресом.
Вы также можете выполнить поиск определенного MAC-адреса непосредственно в файлах конфигурации виртуальной машины (VMX) в хранилище данных VMFS. Подключитесь к вашему хосту ESXi через SSH и выполните команду:
find /vmfs/volumes | grep .vmx$ | while read i; do grep -i "00:52:32:DD:12:91" "$i" && echo "$i"; doneЕсли на ваших виртуальных машинах установлены VMware Tools, вы можете выполнять поиск по IP-адресу гостевой операционной системы. Например, вам нужно найти виртуальную машину с определенным IP-адресом. Используйте следующие команды:
$vmIP="192.168.1.102”
Get-VM * |where-object{$_.Guest.IPAddress -eq $vmIP}|select Name, VMHost, PowerState,GuestId,@{N="IP Address";E={@($_.guest.IPAddress[0])}}|ftЕсли вы знаете только часть IP-адреса, используйте следующую команду:
$vmIP="192.168.”
Get-VM * |where-object{$_.Guest.IPAddress -match $vmIP}|select Name, VMHost, PowerState,@{N="IP Address";E={@($_.guest.IPAddress[0])}} ,@{N="OS";E={$_.Guest.OSFullName}},@{N="Hostname";E={$_.Guest.HostName}}|ftКоманда выведет имена и типы установленных ОС всех виртуальных машин, IP-адреса которых соответствуют этому шаблону.

