Биос современный: Как буткиты внедряются в современные прошивки и чем UEFI отличается от Legacy BIOS / Хабр

Содержание

Как зайти в биос на ноутбуках Asus Lenovo и других

5

Содержание:

Bios (Basic Input/Output System) — это базовая система ввода/вывода которая подготавливает компьютер к включению с помощью тестирования базовых компонентов на работоспособность и дает доступ к первоначальной их настройке. Биос бывает двух видов, это уже устаревший Legacy BIOS и более современный UEFI в котором есть графический интерфейс и поддержка мыши.

Определить работу БИОС можно по быстро мелькающему белому тексту на черном фоне сразу после загрузки компьютера. Этот белый текст и есть подсказкой как зайти в Bios, обычно это F2 или Del. Нажать соответствующую клавишу нужно именно в момент показа этого текста. Но в некоторых случаях такого текста может и не быть. Разные производители материнских плат назначают разные клавиши для входа. В этой статье мы расскажем, как отличаются эти клавиши в зависимости от производителя ноутбука или компьютера.

Варианты входа в биос на Windows

Есть несколько вариантов входа в БИОС:

  • Сразу после включения компьютера;
  • Из загруженной операционной системы (Windows 8 и выше).

В большинстве случаев используют первый вариант.

Вход в биос сразу при включении компьютера

Если компьютер включен необходимо его перезагрузить и внимательно наблюдать за появившемся текстом сразу после включения. Обычно там указана необходимая клавиша для входа в биос. В зависимости от производителя материнской платы такие сообщения могут отличаться вот несколько примеров:

  • Press F2 to run BIOS setup;
  • Enter BIOS setup by pressing F2;
  • Press F2 to enter setup.

В этих случаях для входа в Биос нужно нажать клавишу F2. Но в некоторых моделях ноутбуков такой надписи может не быть поэтому нужно воспользоваться способом для производителя вашего ноутбука.

Как войти в биос на ноутбуке ASUS

Чаще всего на ноутбуках ASUS используется клавиша F2, но в зависимости от модели может использоваться Delete или F9.

Если ни один из вариантов не сработал нужно при выключенном ноутбуке зажать клавишу Esc после чего включить ноутбук. Важно не отпускать клавишу Esc до появления загрузочного меню после чего выбрать пункт “Enter Setup” и нажать Enter.

Войти в биос на Lenovo

На ноутбуках Леново чаще всего для входа в Bios используется клавиша F2. Реже можно встретить сочетание клавиш Fn+F2, F8 или Delete

Вход на ноутбуке Acer

В современных устройствах Acer используется F2 или Delete. В более старых моделях F1, Ctrl+Alt+Esc или Ctrl+Alt+Delete. Для моделей Acer Aspire Ctrl+F2

Вход в Bios на Dell

При загрузке ноутбука пока вы видите логотип Dell нужно нажать клавишу F2 в более старых линейках F1, Delete, Ctrl+Alt+Del

Кнопка BIOS на ноутбуках HP (Hewlett-Packard)

Для HP самыми распространенными являются клавиши Esc или F10, реже F1, F6, F11 или Delete

Ноутбуки Samsung

Самый распространенный вариант нажатие кнопки F2 при отображении логотипа Samsung, в более старых линейках может встречаться F12 или Delete.

Устройства Sony VAIO

В современных моделях Sony VAIO встречается кнопка “Assist” при нажатии на нее появится загрузочное меню, в котором можно перейти в Bios нажав на “Start BIOS Setup”. Если кнопки можно воспользоваться клавишей F1, F2 или Delete при загрузке компьютера.

Bios на устройствах Packard Bell

Для входа в биос на ноутбуках Packard Bell самыми распространенными кнопками являются F1, F2 или Delete

Устройства Toshiba

На устройствах Toshiba для входа в биос используются кнопки F1, F2, F8 или Delete.

Вход в UEFI при загруженной операционной системе (для Windows 8 и выше)

В операционных системах Windows 8 и выше есть возможность зайти в UEFI при загруженной операционной системе. Для этого нужно перейти в “Параметры” и следовать по пути указанному ниже, для разных версий Windows он отличается.

Windows 10

  1. Перейти в «Обновление и безопасность»;
  2. В боковом меню выбрать «Восстановление»;
  3. Найти блок «Особые варианты загрузки»;
  4. Нажать кнопку «Перезагрузить сейчас»;
  5. В открывшемся меню выбрать «Поиск и устранение неисправностей»;
  6. Далее «Дополнительные параметры»;
  7. Выбрать «Параметры встроенного ПО UEFI»;
  8. И нажать кнопку «Перезагрузить».

Windows 8.1

  1. Перейти в раздел «Изменение параметров компьютера»;
  2. Выбрать «Обновление и восстановление»;
  3. В боковом меню выбрать «Восстановление»;
  4. Найти блок «Особые варианты загрузки»;
  5. Нажать кнопку «Перезагрузить сейчас»;
  6. В открывшемся меню выбрать «Диагностика»;
  7. Перейти в «Дополнительные параметры»;
  8. Выбрать пункт «Параметры встроенного ПО UEFI»;
  9. Нажать кнопку «Перезагрузить».

Windows 8

  1. Перейти в раздел «Изменение параметров компьютера»;
  2. Выбрать раздел «Общее»;
  3. Найти блок «Особые варианты загрузки»;
  4. Нажать кнопку «Перезагрузить сейчас»;
  5. В открывшемся меню выбрать «Диагностика»;
  6. Перейти в «Дополнительные параметры»;
  7. Выбрать пункт «Параметры встроенного ПО UEFI»;
  8. Нажать кнопку «Перезагрузить».

 

5 1 голос

Рейтинг статті

Современное развитие BIOS

Любой компьютер или ноутбук при включении загружает так называемую BIOS. Без этой базовой системы, которая записана в микросхему на материнской плате, компьютер не станет запускаться. Положение вещей не менялось со времен первого персонального компьютера, выпущенного компанией IBM. Но вот Intel, Microsoft и другие крупные производители решили заменить BIOS интерфейсом UEFI (Unified Extensible Firmware Interface ). Данный интерфейс призван стать новым стандартом базовой системы для ПК.

Для чего нужны BIOS и UEFI


Для обозначения базовой системы (микропрограммы) используют также термин Firmware: аппаратно реализованное (встроенное) ПО. Он указывает на то, что программа «зашита» в микросхему на материнской плате (то есть ее не нужно устанавливать) и запускается автоматически. Сразу после включения ПК BIOS и UEFI выполняют несколько задач.

  • Тестирование оборудования. Вначале BIOS осуществляет базовую проверку основных узлов компьютера. При этом проверяются не все компоненты, а лишь те, которые необходимы для запуска ПК, например процессор и оперативная память.
  • Загрузка настроек. После окончания процедуры самотестирования (она занимает меньше минуты) BIOS определяет некоторые настройки. Сюда относятся, например, частота оперативной памяти, время включения встроенных вентиляторов или выбор режима энергосбережения, в который перейдет компьютер после длительного простоя. Многие из настроек можно изменить и в самой операционной системе, однако большинство параметров BIOS устанавливает непосредственно перед запуском Windows. На данном этапе загрузки пользователь также может изменить некоторые настройки – например, включить или отключить отдельные интерфейсы на материн­ской плате (например, для жестких дисков или USB-устройств). Кроме того, есть возможность выбора последовательности, в которой компьютер будет обращаться к загрузочным устройствам при запуске операционной системы (например, сначала – к жесткому диску, затем – к приводу CD/DVD, а после – к USB-накопителю).
  • Загрузка операционной си­стемы. В заключение BIOS загружает ОС. После запуска системы и всех драйверов потребность в BIOS отпадает.

Что означают аббревиатуры BIOS и UEFI

BIOS. Basic Input-Output System (базовая система ввода-вывода) существует почти 30 лет. В названии определен круг изначальных задач: BIOS должна была выполнять основные операции ввода/вывода для операционной системы, например производить запись данных на жесткий диск.BIOS разработана в 1981 году для первого ПК компании IBM. Тогда система носила название «ROM Basic»: ROM – поскольку хранилась в неперезаписываемой микросхеме памяти (Read Only Memory), а Basic – потому что была создана с использованием одноименного языка программирования. Компьютер на базе первых подобных версий BIOS работал без операционной системы. Взаимодействие с ПК строилось на основе команд языка Basic. Вскоре этот язык программирования перестал использоваться в микропрограммах, а для их обозначения стала применяться аббревиатура BIOS. За последние несколько десятилетий BIOS сильно изменилась. Это касается не только интерфейса, но и содержимого: например, в 1990-х годах были добавлены такие функции, как загрузка с привода CD/DVD или автоматическая настройка плат расширения.

UEFI. Интерфейс Unified Exten­sible Firmware Interface с 2001 года разрабатывался компанией Intel как стандарт EFI (Extensible Firm­ware Interface, расширяемый ­интерфейс встроенного ПО) для серверного процессора Itanium. Ввиду того, что данная модель представляла собой воплощение новейших технологий, найти подходящую версию BIOS, которая работала бы с Itanium после небольшой доработки, оказалось невозможным. Apple – первый производитель, начавший использовать во всех своих настольных компьютерах и ноутбуках индивидуальную версию EFI. Компания остается верна EFI с 2006 года, когда она принялась оснащать ПК и ноутбуки процессорами Intel. Тогда как большинство других производителей не решались перейти с BIOS на EFI. В 2005 году аббревиатура EFI была дополнена словом Unified. Оно говорит о том, что координацию разработки интерфейса осуществляют несколько компаний. Сюда относятся производители ПК, например Dell, HP и IBM, а также разработчики BIOS, например Phoenix и Insyde. Не обошлось и без Microsoft как основного разработчика ОС.



Невзрачный вид, загадочные меню: многие версии BIOS понятны только технически подкованным пользователямПреемник BIOS выглядит гораздо более привлекательно и предоставляет множество полезных возможностей – например, возможность выбора загрузочного устройства

Почему BIOS должна уйти?

Разрабатывая BIOS, программи­сты не задумывались о том, в течение какого времени будет использоваться эта система. Поэтому в этой базовой системе есть несколько компонентов, изменение которых невозможно либо связано с весьма большими трудностями. Например, BIOS (без специальных ухищрений) способна распознать диск емко­стью лишь до 2 Тб, а современные 3,5-дюймовые жесткие диски могут хранить уже до 3 Тб данных.  В UEFI подобных ограничений нет. Притом новая система предоставляет единый интерфейс программирования – это облегчает разработку программ, запускаемых до загрузки операционной системы. Кроме того, UEFI позволяет ­интегрировать дополнительные функции, например программу резервного копирования данных. Наконец, в UEFI отсутствуют некоторые технически устаревшие функции, имеющиеся в BIOS, – например, переключение процессора при загрузке системы в медленный режим работы Real Mode.

Преимущества UEFI

Поддержка жестких дисков большой емкости. Для управления жесткими дисками BIOS использует MBR (Master Boot Record, главная загрузочная запись) – она содержит информацию о разделах жесткого ди­ска. Основной недостаток MBR: размер каждой записи в ней составляет 32 бита. В результате BIOS может контролировать приблизительно 4 млрд (232) секторов. К тому же базовая система «рассчитывает» на то, что размер каждого сектора составляет 512 байт; в итоге оказывается, что BIOS не может работать с дисками свыше 2 Тб. И если двадцать лет назад подобный объем считался несбыточной мечтой, то сейчас это суровая реальность. Секторы больших размеров позволили бы использовать диски емкостью 3 Тб, но не все программы из тех, которые напрямую обращаются к жесткому диску, работают с ними корректно. Что касается интерфейса UEFI, он использует для управления жесткими дисками технологию GPT (GUID Partition Table), обеспечивающую возможность записи на жесткий диск ­большего объема данных. В итоге стандарт GPT поддерживает же­сткие диски емкостью до 8192 Эб (почти 8 млрд Тб).

  • Встроенная BIOS. При использовании материнских плат на базе UEFI отпадает необходимость в BIOS, поскольку все функции BIOS содержатся в UEFI в виде так называемого модуля поддержки совместимости (Compatibility Support Module). Поэтому программа, использующая функции BIOS, работает и на компьютерах с UEFI.
  • Простота управления. Для навигации по меню настроек и выбора программ можно пользоваться мышью. В BIOS, напомним, можно было работать только с помощью клавиатуры. К тому же интерфейс UEFI поддерживает более высокое разрешение.
  • Преимущества в скорости загрузки. От включения компьютера до момента, пока BIOS загрузит операционную систему, проходит 30–60 с. UEFI работает быстрее. Например, на форуме разработчиков IDF (Intel Developer Forum), проходившем в 2009 году, разработчики микропрограмм Insyde и Phoenix представили прототипы, загружавшие ОС за 1–2 с.
  • Встроенная операционная система. UEFI имеет также собственную оболочку. По сути – это миниатюрная операционная система, которая, как и DOS (далекий предок Windows), «понимает» только текстовые команды. Она может оказаться полезной для опытных пользователей или системных администраторов, пытающихся установить причины отказа загрузки основной ОС. Некоторые производители, в том числе компания MSI, предлагают для UEFI собственные операционные системы на базе Linux, загружа­емые с CD/DVD.
  • Дополнительные программы. Встроенная мини-ОС подходит и для установки дополнительных программ. Последние можно интегрировать в виде отдельных пунктов меню интерфейса UEFI либо загружать с CD/DVD. Однако это дело будущего – в настоящее время доступно небольшое количество приложений. К тому же речь идет, как правило, о вспомогательных утилитах и очень простых играх, например Pair Match.

Оставьте свой комментарий!

  • Комментарий в ВКонтакте

Tags:

  • bios
  • intel
  • microsoft
  • компьютер
  • ноутбук
Добавить комментарий

< Предыдущая   Следующая >

Modern BIOS Management — MSEndpointMgr

Загрузите и подготовьте пакеты обновлений BIOS

Для подхода к Modern BIOS Management нам необходимо заполнить ConfigMgr обычными пакетами для клиентских машин. Если вы используете оборудование Dell, HP, Lenovo или Microsoft, вы можете использовать наш инструмент автоматизации драйверов, чтобы сделать именно это. Прочтите документацию, встроенную в загружаемый пакет средства автоматизации драйверов, чтобы получить дополнительные сведения о том, как можно использовать это средство. Для решения Modern BIOS Management следуйте этим инструкциям, чтобы создать пакеты обновления BIOS:

  • Запустите средство автоматизации драйверов и подключитесь к среде ConfigMgr, введя имя сервера сайта, код сайта и нажав «Подключиться к ConfigMgr» на вкладке «Настройки ConfigMgr». Кроме того, укажите в качестве пути к хранилищу пакетов расположение, которое будет использоваться в качестве источника пакетов для каждого пакета драйверов, создаваемого инструментом.
  • На вкладке «Общие параметры» укажите путь, по которому Driver Automation Tool будет загружать исходные файлы для пакетов обновления BIOS.
  • Теперь нам нужно выбрать платформу развертывания в качестве ConfigMgr — стандартный пакет, затем выбрать BIOS в качестве типа загрузки и выбрать ОС и архитектуру.
  • В разделе «Производитель» выберите поставщиков, модели которых вы хотите отобразить, а затем нажмите кнопку «Найти модели».
  • Выберите из списка модели, для которых вы хотите загрузить пакеты обновлений BIOS, и щелкните Начать загрузку | Извлечь | Кнопка «Импорт», чтобы начать процесс создания пакета.

После загрузки вы должны получить что-то вроде этого в консоли ConfigMgr:

Не забудьте распространять пакеты, созданные Driver Automation Tool, если вы специально не настроили этот инструмент для этого.

Перейдите к шагу 2, когда пакеты обновления BIOS будут созданы для каждой желаемой модели и поставщика.

Установить ConfigMgr WebService

Современное решение для управления BIOS требует, чтобы в вашей среде была установлена ​​ConfigMgr WebService с минимальной версией 1.6.0. Подробные шаги по установке можно найти в документации, включенной в пакет ConfigMgr WebService, который можно загрузить сверху.

Веб-служба является ключевой функцией этого процесса, поскольку она будет использоваться во время последовательности задач для запроса доступных пакетов обновления BIOS из ConfigMgr (среди прочего с использованием метода GetCMPackage). Мы рекомендуем установить веб-службу ConfigMgr на сервере основного сайта, если это возможно.

Перейдите к шагу 3 после успешной установки ConfigMgr WebService.

Настройте последовательность задач

Добавление необходимого шага в последовательность задач для современного управления BIOS не может быть проще. Загрузите сценарий с именем Invoke-CMDownloadBIOSPackage.ps1 из ресурсов сценариев выше. Этот сценарий автоматически определяет модель и производителя компьютера, версию образа операционной системы и архитектуру в выполняемой последовательности задач, вызывая веб-службу ConfigMgr для получения доступных пакетов и сопоставляя эти значения. В случае нескольких пакетов, соответствующих критериям, будет выбран самый последний пакет на основе свойства SourceDate объекта пакета. Если совпадений нет вообще, сценарий завершает работу, позволяя продолжить выполнение последовательности задач.

При обнаружении пакета обновления BIOS, соответствующего требуемым критериям, будут установлены переменные последовательности задач, используемые OSDDownloadContent. exe, и будет запущен этот исполняемый файл. При этом автоматически загружается соответствующий пакет для развертываемой модели, что делает его доступным локально для сценария обновления BIOS конкретного поставщика. Когда пакет будет доступен локально и загрузка будет успешно завершена, сценарий Invoke-CMDownloadBIOSPackage.ps1 определит, требуется ли системе обновление BIOS, сравнив текущую версию BIOS системы с только что загруженным пакетом. Только если системе требуется обновление, для переменной последовательности задач с именем NewBIOSAvailable будет установлено значение True. Если для этой переменной последовательности задач задано значение True, сценарий производителя вступит во владение и обновит BIOS до последней версии микропрограммы.

С точки зрения ведения журнала сценарий Invoke-CMDownloadBIOSPackage.ps1 записывает в отдельный файл журнала с именем ApplyBIOSPackage.log, расположенный в том же каталоге, что и файл smsts.log во время выполнения операции. Чтобы узнать коды выхода для шагов производителя, обратитесь к сайтам поддержки производителя, так как они могут меняться со временем.

Следуйте этому простому процессу использования сценария Invoke-CMDownloadBIOSPackage.ps1 в своей последовательности задач:

  • Упакуйте сценарий Invoke-CMDownloadBIOSPackage.ps1 вместе с любыми требуемыми сценариями конкретного поставщика из раздела Ресурсы сценариев выше и распространите пакет в своем Пункты раздачи.
  • Добавьте шаг «Выполнить сценарий PowerShell» до или после шага «Применить операционную систему», вызывающий сценарий Invoke-CMDownloadBIOSPackage.ps1 со следующими параметрами: https://CM01.domain.com/ConfigMgrWebService/ConfigMgr.asmx
    
  • SecretKey  – секретный ключ, используемый для подключения к сайту ConfigMgrWebService
    
  • Filter «B  – Введите термин BIOS» Update Pilot» в зависимости от типа развертывания, которое вы хотите запустить
    
  • DeploymentType  – здесь вы можете указать два разных параметра:
    
    • BareMetal – это параметр по умолчанию, предназначенный для среды WinPE. Журналы сохраняются в папке журнала в папке _SMSTaskSequence\Logs
      
    • BIOSUpdate — этот переключатель предназначен для использования в полной среде Windows. Журналы сохраняются в папку %WinDir%\Temp.

Пример для DeploymentType BareMetal:

 Invoke-CMDownloadBIOSPackage.ps1 -URI "http://CM01.domain.com/ConfigMgrWebService/ConfigMgr.asmx" -SecretKey "12345" -Filter "BIOS" 

Пример для DeploymentType BIOSUpdate:

 Invoke-CMDownloadBIOSPackage. ps1 -URI "http://CM01.domain.com/ConfigMgrWebService/ConfigMgr.asmx" -SecretKey "12345" -Filter "BIOS" -DeploymentType BIOSUpdate 
  • Ниже шага Run PowerShell Script создайте новый групповой шаг с именем Update BIOS . Настройте параметры условия, как показано ниже:
  • Добавьте шаг «Выполнить PowerShell» для каждого желаемого сценария конкретного поставщика в группе «Обновление BIOS». Обратитесь к разделу Ресурсы сценариев выше для получения подробной информации о том, как настроить сценарии поставщиков.

Современное управление BIOS с помощью службы администрирования — SysManSquad

Обновление 27 апреля 2021 г. Решение теперь работает через CMG. Пожалуйста, смотрите этот пост для деталей.

Если вы еще не видели мою первую запись в блоге о современном управлении драйверами, краткий обзор заключается в том, что решение использует пакеты, созданные с помощью Driver Automation Tool и службы администрирования, для получения информации об этих пакетах и ​​определения наиболее подходящего пакета драйвера. применить в последовательности задач.

Во второй части я расскажу об изменениях и улучшениях, внесенных в существующее решение для динамического получения, фильтрации и применения обновлений BIOS.

Примечание. Ссылка для скачивания экспорта последовательности задач находится в конце записи блога.

Улучшения Invoke-GetPackageIDFromAdminService

Когда я изначально писал сценарий, который запрашивает AdminService, я хотел убедиться, что смогу повторно использовать один и тот же сценарий для возврата пакетов BIOS и драйверов. Но когда пришло время разработать последовательность задач для применения пакетов BIOS, я обнаружил, что забыл кое-что, чтобы определить текущую версию BIOS системы и отфильтровать любые пакеты BIOS, которые не были обновлением текущей системы.

Новые параметры для информации о BIOS

Мне нужно было предоставить скрипту дополнительную информацию в качестве параметра, касающегося системного BIOS. В скрипт были добавлены 2 следующих параметра:

  • CurrentBIOSVersion
  • CurrentBIOSReleaseDate

Зачем нужна дата выпуска биоса?
Хороший вопрос! В исходном решении Николая Андерсена и Мориса Дейли из MSEndPointMgr используется дата выпуска BIOS для систем Lenovo, чтобы определить, является ли пакет BIOS обновлением или нет. Теперь, почему именно? Я предполагаю, что Lenovo не очень хорошо сохраняла какое-то стандартное наименование или версию для своих версий BIOS.

Пример пакета Lenovo BIOS, созданного с помощью Driver Automation Tool

Фильтрация BIOS

Теперь, когда у нас есть текущая версия BIOS и дата выпуска, нам нужно оценить и отфильтровать более старые версии пакета BIOS. Мы хотим, чтобы скрипт возвращал идентификатор пакета только в том случае, если пакет на самом деле является обновлением для устройства.

В этой части мне пришлось покопаться в сценарии Invoke-CMDownloadBIOSPackage.ps1 и в сценарии Driver Automation Tool, чтобы увидеть, как они фильтруют и извлекают информацию о версиях для разных поставщиков. В итоге я получил следующий код для сравнения версий BIOS.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
 
 Add-TextToCMLog $LogFile "Фильтрация пакета приводит только к пакетам BIOS, которые будут обновлением до текущей версии BIOS. " $компонент 1
$ApplicableBIOSPackages = New-Object System.Collections.ArrayList
Если($Производитель-ne "Lenovo"){
    #Проверьте, не имеет ли какой-либо из пакетов версию BIOS выше, чем текущая версия BIOS
    If($CurrentBIOSVersion -and $CurrentBIOSVersion -ne "Неизвестно"){
        Add-TextToCMLog $LogFile "Фильтрация пакета приводит только к пакетам, имеющим версию BIOS выше, чем `"$($CurrentBIOSVersion)`"" $component 1
        foreach ($ пакет в $ пакетах) {
            переключатель ($ Производитель) {
                "Делл"{
                    Если($package.Version -as [Версия]){
                        Если ($CurrentBIOSVersion -as [Версия]){
                            If(([Версия]$Пакет.Версия) -gt [Версия]$ТекущаяВерсияBIOS){
                                [void]$ApplicableBIOSPackages.Add($package)
                            }
                        }ElseIf($CurrentBIOSVersion - как "A*"){
                            #Переход с версии A__ на правильный номер версии считается обновлением для систем Dell. 
                            [void]$ApplicableBIOSPackages.Add($package)
                        }
                    }ElseIf(($Package.Version - как "A*") - и ($CurrentBIOSVersion - как "A*")){
                        If(([Int32]::Parse(($Package.Version).TrimStart("A"))) -gt ([Int32]::Parse(($CurrentBIOSVersion).TrimStart("A")))){
                            [void]$ApplicableBIOSPackages.Add($package)
                        }
                    }
                }
                "Hewlett Packard"{
                    $packageVersion = ($package.Version).TrimEnd(".")
                    $packageVersion = $packageVersion.Split(" ")[0] #Пример: 02.02.03 A 1 --> Для оценки будет использоваться только 02.02.03
                    Если($packageVersion -as [Версия]){
                        Если ($CurrentBIOSVersion -as [Версия]){
                            If([Версия]$packageVersion -gt [Версия]$CurrentBIOSVersion){
                                [void]$ApplicableBIOSPackages.Add($package)
                            }
                        }Else{#Попытка извлечь номер версии из предоставленной текущей версии BIOS
                            $CleanBIOSVersion = $CurrentBIOSVersion. TrimEnd(".")
                            $CleanBIOSVersion = $CleanBIOSVersion.Split(" ")[0]
                            Если ($CleanBIOSVersion -as [Версия]){
                                Если ([Версия]$packageVersion -gt [Версия]$CleanBIOSVersion){
                                    [void]$ApplicableBIOSPackages.Add($package)
                                }
                            }
                        }
                    }ElseIf($packageVersion -match ".*F\.(\d+)$"){
                        $packageVersion = $matches[1]
                        Если($CurrentBIOSVersion-match ".*F\.(\d+)$"){
                            Если ([int32]$packageVersion -gt [int32]$matches[1]){
                                [void]$ApplicableBIOSPackages.add($package)
                            }
                        }
                    }
                }
                "Майкрософт"{
                    Add-TextToCMLog $LogFile «Пакет BIOS не будет возвращен, Microsoft предоставляет обновления прошивки как часть своих пакетов драйверов».  $компонент 2
                }
                По умолчанию{
                    # Любой другой производитель: сравнивайте версии только в том случае, если они обе анализируются как объекты [Версия].
                    If(($package.Version -as [Версия]) -and ($CurrentBIOSVersion -as [Версия])){
                        If([Версия]($package.Version) -gt [Версия]$CurrentBIOSVersion){
                            [void]$ApplicableBIOSPackages.Add($package)
                        }
                    }
                }
            }
        }
    }Еще{
        Add-TextToCMLog $LogFile «Текущая версия BIOS не указана, невозможно сравнить версию BIOS». $компонент 3
    }
}Еще{
    Только #Lenovo: проверьте, не имеет ли какой-либо из оставшихся пакетов более новую дату выпуска BIOS, чем текущая дата выпуска BIOS.
    Add-TextToCMLog $LogFile "Фильтрация пакетов приводит только к пакетам с датой выпуска BIOS более новой, чем `"$($CurrentBIOSReleaseDate)`"." $компонент 1
    $BIOSReleaseDate = [datetime]::ParseExact($CurrentBIOSReleaseDate,"ггггММдд",$null)
    foreach ($ пакет в $ пакетах) {
        If($package. Description -match "\(Включенные модели:(.*)\) \(Дата выпуска:(.*)\)"){
            Пытаться{
                $ReleaseDate = [datetime]::ParseExact($matches[2],"yyyyMMdd",$null)
                Если ($ReleaseDate -gt $BIOSReleaseDate){
                    [void]$ApplicableBIOSPackages.Add($package)
                }
            }Ловить{
                Add-TextToCMLog $LogFile "Не удалось проанализировать `"$matches[2]`" как дату выпуска BIOS для пакета `"$($package.Name)`", пропуская..." $component 2
            }
        }
    }
}
 

Пример файла журнала, созданного при запросе пакета BIOS

После внесения этих улучшений в сценарий мы теперь готовы использовать последовательность задач для динамического применения пакетов BIOS.

Модификации последовательности задач

Изменить «Query AdminService for PackageID» TS

Нам необходимо указать текущую версию BIOS и дату выпуска сценария в последовательности задач.

Новые переменные TS, используемые для пакетов BIOS

Затем мы передаем эту информацию в качестве параметра сценарию Invoke-GetPackageIDFromAdminService.

Создайте последовательность задач «Применить пакет BIOS»

Последовательность задач аналогична той, которую я создал для драйверов. Для применения фактического обновления BIOS я повторно использовал сценарии ребят из MSEndpointMgr.

Относительно обновлений HP BIOS

Если на ваших устройствах HP установлен пароль BIOS (надеюсь, у вас есть), то вам необходимо указать еще 2 переменные:

  • PasswordBinFilename: имя .bin-файла, используемого при применении обновления BIOS.
  • PasswordBinPackageID: PackageID пакета, содержащего .bin-файл.

Мне пришлось изменить исходный сценарий Invoke-HPBIOSUpdate, чтобы добавить новый параметр для указания пути к файлу .bin, поскольку исходный сценарий предполагал, что файл .bin находится в той же папке, что и сценарий.

Читайте также: