Для управления iLO с помощью PowerShell скриптов компания Hewlett Packard выпускает и поддерживает набор командлетов под названием Scripting Tools for Windows PowerShell: iLO cmdlets.
Текущая версия пакета 4.3.0.0 от 16 ноября 2023 года может быть использована для конфигурации управления iLO на серверах HPE ProLiant Gen8, Gen9, Gen10, Gen10 Plus, Gen11. iLO cmdlets поддерживает iLO 4, iLO 5 и iLO 6 ProLiant серверы. Для работы командлеты используют RIBCL, REST(Limited) и Redfish интерфейсы iLO. Для работы скриптов понадобится .NET Framework 4.5 - 4.7.1.
Скачать HPEiLOCmdlets можно с сайта HPE:
И с powershellgallery.com:
https://www.powershellgallery.com/packages/HPEiLOCmdlets/4.3.0.0
Документация
User Guide:
HPE_a00129680en_us_Scripting Tools for Windows PowerShell User Guide_ iLO Cmdlets v4.0.0.0.pdf
https://support.hpe.com/hpesc/public/docDisplay?docLocale=en_US&docId=a00129680en_us
Примеры:
https://github.com/HewlettPackard/PowerShell-ProLiant-SDK
Установка iLO cmdlets
Предварительно устанавливаем .NET Framework.
Скачиваем пакет.
Получаем HPEiLOCmdlets.msi.
Устанавливаем MSI пакет.
Открывается мастер установки. Next.
Принимаем лицензионное соглашение. Next.
Выбираем папку установки и указываем где разместить примеры скриптов. Next.
Next.
Начинается установка.
Готово. Finish.
Примеры скриптов
Примеры PowerShell скриптов можно найти в папке по умолчанию C:\HPEiLOCmdlets\Samples.
В iLOInput.csv указывается список серверов в виде:
IP,Username,Password 192.168.1.2,admin,password 192.168.1.3,admin,password
Здесь нужно указать IP адрес или DNS имя iLO, логин, пароль.
Скрипты написаны с ошибками, так что не удивляйтесь. Но для общего понимания сойдут. К примеру, если указать только один адрес iLO, то у объекта $connection не будет параметра Count. Ибо массив из одного элемента — это не массив. В этом случае можно не согласиться и заменить строку
$connection = Connect-HPEiLO -IP $inputcsv.IP -Username $inputcsv.Username -Password $inputcsv.Password -DisableCertificateAuthentication
на
$connection = @(Connect-HPEiLO -IP $inputcsv.IP -Username $inputcsv.Username -Password $inputcsv.Password -DisableCertificateAuthentication)
Использовать управление PowerShell для одного сервера особого смысла нет. Зато тестировать лучше всё-таки на одном сервере, а не на всём парке техники.