BCU: единый профиль BIOS на сотнях машин HP
Короткий ответ. HP BIOS Configuration Utility (BCU) — утилита командной строки, которая читает текущие настройки BIOS в текстовый файл и применяет изменения из такого файла. Базовый цикл: BIOSConfigUtility64.exe /getconfig:config.txt — получить состояние, отредактировать нужные строки, BIOSConfigUtility64.exe /setconfig:config.txt — применить. Если на машине установлен пароль BIOS, его нужно передать отдельным зашифрованным файлом через параметр текущего пароля. Если включён HP Sure Admin, обычного пароля недостаточно: требуется авторизационная строка с криптографической подписью.
Что умеет BCU
Документация HP перечисляет параметры командной строки. Ключевые:
| Параметр | Назначение |
|---|---|
/Get:"файл" или /GetConfig:"файл" |
Считать текущую конфигурацию BIOS; если имя файла не указано — вывести в консоль |
/Set:"файл" или /SetConfig:"файл" |
Применить конфигурацию; принимает только файлы формата REPSET |
/SetDefaults |
Сбросить настройки BIOS на предустановленные; при указании вместе с Get/Set игнорируется |
/GetValue, /SetValue |
Получить или изменить значение отдельной настройки без файла конфигурации |
/Cspwdfile:"файл" |
Передать текущий пароль BIOS в зашифрованном виде |
/Log |
Сформировать лог-файл |
/addauthstr |
Сгенерировать BCU-AuthString.txt — авторизационную строку для систем с HP Sure Admin |
/pkey:"*.pfx" |
Указать закрытый ключ для подписи настроек |
/ar, /ot, /uid |
Параметры авторизационной строки: счётчик защиты от повторного использования, целевая система, UUID |
Версия 4.0.1.1 и новее требует, чтобы первая строка файла конфигурации содержала слово BIOSConfig и номер версии формата (сейчас 1.0). Файл, отредактированный вручную без этой строки, не применится.
Рабочий цикл на одной машине
- Считайте текущее состояние. Запустите командную строку от имени администратора и выполните
BIOSConfigUtility64.exe /getconfig:bios_baseline.txt. - Проверьте, что настройки вообще доступны. BCU работает не со всеми параметрами: поддержка
/Setи/Getзаявлена для избранных настроек коммерческих настольных, мобильных и рабочих станций HP, и набор зависит от модели. - Отредактируйте только нужное. В файле хранятся все доступные параметры; оставляйте в целевом файле те строки, которые действительно надо изменить. Так проще читать диффы.
- Примените.
BIOSConfigUtility64.exe /setconfig:target.txt. - Перезагрузите машину. Часть изменений вступает в силу только после перезагрузки — это прямо указано в документации.
- Проверьте результат. Снова сделайте
/getconfigи сравните с ожидаемым состоянием.
Ошибка новичка — применить файл и не проверить результат. BCU может вернуть успешный код, а настройка останется прежней, если параметр не поддерживается на этой модели или заблокирован политикой BIOS.
Пароль BIOS: только зашифрованный файл
В старых версиях пароль BIOS можно было передать открытым текстом в командной строке. Начиная с BCU 3.0.3.1 поддержка открытого пароля в командной строке удалена, вместо неё используется зашифрованный файл и параметр текущего пароля.
Практические правила:
- Храните файл пароля отдельно от конфигурации. Он не должен лежать в общем каталоге с профилями BIOS.
- Ограничьте доступ. Файл пароля — это ключ ко всем машинам парка, где пароль одинаковый.
- Не переиспользуйте один пароль на всё. Разделение по подразделениям или группам активов ограничивает ущерб при компрометации.
- Проверяйте наличие пароля до кампании. Машина с установленным паролем без переданного файла просто не примет настройки, и вы узнаете об этом по логам на каждой машине отдельно.
Политика HP в отношении забытого администраторского пароля описана в статье Пароль администратора BIOS на HP: правила: обхода нет, при утрате требуется замена системной платы.
Sure Admin: пароль заменяется подписью
Если на машине включён HP Sure Admin (режим Enhanced BIOS Authentication Mode), пароль BIOS не действует. Вместо него BIOS требует авторизационную строку, которая содержит значения /ot, /ar, /uid и криптографическую подпись.
Процедура из документации HP для добавления авторизации в файл конфигурации:
BIOSConfigUtility.exe /get:config.txt— получить копию.- Отредактировать
config.txt. - Выполнить
BIOSConfigUtility.exe /set:config.txt /ar:0 /ot:0 /pkey:<ключ>.pfx /addauthstr— создаётсяBCU-AuthString.txt. - Применить:
BIOSConfigUtility.exe /set:BCU-AuthString.txt.
Важная деталь: /ar — счётчик защиты от повторного использования (anti-replay). При ar:0 команда сработает, только если счётчик в BIOS равен нулю. Повторный запуск требует большего значения. Это защита от повторного применения перехваченной авторизационной строки, и её нельзя «обойти» — можно только соблюдать порядок.
/uid позволяет привязать подпись к одной машине через UUID; значение FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF делает настройки применимыми к любой системе. Для парка обычно нужен второй вариант, для точечных изменений — первый.
Подробнее про архитектуру — в статье HP Sure Admin: управление BIOS в парке.
BCU и PowerShell-модуль HP
Помимо BCU существует модуль HP для PowerShell с командой Get-HPBIOSSettingsList, которая умеет выводить настройки в форматах BCU, CSV, XML и JSON. Это удобно для инвентаризации: например, собрать список машин, где отключён Secure Boot или включена загрузка с внешних носителей.
Важный нюанс из документации HP: при перенаправлении вывода в файл PowerShell добавляет BOM, из-за чего файл нельзя напрямую использовать как входной для BCU. Нужно либо убрать BOM, либо применять bios-cli.ps1. Отдельно указано, что настройки типа «пароль» в XML/JSON/CSV/BCU-выгрузку не попадают.
Что BCU не решает
- Не обходит пароль. Утраченный пароль администратора не восстанавливается утилитой.
- Не заменяет обновление BIOS. BCU меняет настройки, а не версию прошивки.
- Не работает на всех моделях одинаково. Набор поддерживаемых настроек зависит от платформы и версии BIOS.
- Не управляет драйверами. Для этого есть HP Image Assistant.
- Не даёт гарантии применения. Итог нужно проверять повторным чтением конфигурации.
Инструменты Dell для аналогичных задач устроены иначе — сравнение подходов в статье Dell Command Update или SupportAssist.
Как построить кампанию на парке
- Зафиксируйте базовый профиль. Снимите
/getconfigс эталонной машины каждой модели. - Сравните эталоны. Различия между моделями — это норма; важно понять, какие параметры нельзя унифицировать.
- Соберите целевой файл. Только те строки, которые действительно нужно изменить.
- Протестируйте на 3–5 машинах. Включая машину с паролем BIOS и, если используется, с Sure Admin.
- Разверните через существующую систему управления. BCU — консольная утилита, её легко вызвать из задачи в UEM.
- Проверьте отчёт. Машины, где настройка не применилась, нужно разобрать отдельно: у большинства причина в пароле или в неподдерживаемом параметре.
- Задокументируйте профиль. Через год вам понадобится объяснить, почему Secure Boot включён, а загрузка с USB — нет.
FAQ
Нужны ли права администратора? Да, утилита обращается к BIOS через интерфейс ОС и требует повышенных прав.
Что делать, если BCU возвращает успех, а настройка не изменилась? Проверьте, поддерживается ли параметр на этой модели, и не заблокирован ли он паролем BIOS или политикой. Повторное чтение конфигурации покажет фактическое состояние.
Можно ли передать пароль BIOS в командной строке открытым текстом? Нет, начиная с версии 3.0.3.1 такая возможность удалена. Используется зашифрованный файл.
Работает ли BCU, если включён Sure Admin?
Да, но вместо пароля нужна авторизационная строка с подписью, создаваемая через /addauthstr и закрытый ключ.
Можно ли сбросить BIOS на defaults через BCU?
Да, параметром /SetDefaults. При этом параметры Get/Set игнорируются.
Совместим ли BCU с выгрузкой из PowerShell?
Только после удаления BOM: PowerShell добавляет его при перенаправлении вывода. Либо используйте bios-cli.ps1.
Итог
BCU — рабочий инструмент для приведения BIOS к единому профилю, но он требует дисциплины: считать состояние, менять только нужные строки, передавать пароль зашифрованным файлом, учитывать счётчик anti-replay при Sure Admin и обязательно проверять результат повторным чтением. Утилита не обходит защиту и не заменяет обновление прошивки — она лишь применяет настройки, которые платформа готова принять.