Если инфорация оказалась интересна и/или полезна, не побрезгуйте, оставьте комментарий ;)

вторник, 24 октября 2017 г.

PowerShell и HPE OneView. Советы. Как получить IP-адрес iLO

Кажется, совсем простая задача, однако средим свойст объекта.

Откроем сессию с OneView
PS > Connect-HPOVMgmt -Hostname 192.168.1.10 -UserName Administrator -Password password

Создадим объект HPOneView.ServerHardare, используем имя в виде фильтра
PS > $server = Get-HPOVServer -Name "DL360Gen9-1"

Проверим, какие есть методы и свойства у этого объекта (вообще команда Get-Member очень полезна, если документация библиотеки не на высоте):
PS > Get-Member -InputObject $server






Видно, что IP-адрес iLO нигде не светится. После некоторых поисков выясняется, что информация о настройках сети iLO есть свойстве "mpIpAddresses":


А именно в множестве "mpIpAddresses":
PS > $server.mpHostInfo.mpIpAddresses


Адреса оказывается два - IP v4 и IP v6. Второй вряд ли часто используется. Поэтому нам надо получить первый. Используем фильтр "where" с регулярным выражением "\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}". Честно скажу, что в регулярных выражениях я не силен, поэтому формулу честно скопировал из Интернета:
PS > ($server.mpHostInfo.mpIpAddresses |where {$_.address -match "\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}"}).address


Всё. Адрес у нас в руках. Можно его использовать в других скриптах.  Для примера используем команду ping:
PS > ping ($server.mpHostInfo.mpIpAddresses |where {$_.address -match "\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}"}).address

или
PS > Test-Connection -ComputerName ($server.mpHostInfo.mpIpAddresses |where {$_.address -match "\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}"}).address -Count 1 -Quiet

Конец примера.

Комментариев нет: