В интерфейсе VMWare vSphere Client вы можете выполнять поиск виртуальных машин только по их именам. Но в некоторых случаях администратору VMWare необходимо найти определенную виртуальную машину по ее IP или MAC адресу.
Проще всего выполнять по различным параметрам виртуальных машин с помощью VMWare PowerCLI.
Запустите консоль PowerCLI и подключитесь к вашему серверу vCenter или ESXi хосту с помощью команды:
Connect-VIServer vsphere.winitpro.ru -User administrator
Для поиска виртуальной машины по MAC адресу используйте следующие команды:
$vmMAC="00:50:16:AB:71:12”
Get-VM | Get-NetworkAdapter | Where-Object {$_.MacAddress –eq $vmMAC } | Select-Object Parent,Name,MacAddress
Как вы видите, команда вернула имя виртуальной машины с указанным MAC адресом.
Также вы можете выполнить поиск определенного MAC адреса непосредственно по конфигурационным VMX файлам виртуальных машин на VMFS хранилище.
find /vmfs/volumes | grep .vmx$ | while read i; do grep -i "00:50:16:ba:11:21" "$i" && echo "$i"; done
Если на виртуальных машинах установлены VMware Tools, вы можете выполнять поиск по IP адресу гостевой операционной системы. Например, вам нужно найти ВМ с определенным IP адресом. Воспользуйтесь следующими командами:
$vmIP="10.1.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 адреса совпадают с данным шаблоном.