Как получить или изменить настройки BIOS из PowerShell?

Вы можете использовать PowerShell для просмотра или изменения настроек BIOS на вашем Windows компьютере. Рассмотрим несколько примеров, которые можно использовать для получения или изменения некоторых настроек BIOS через WMI классы (Windows Management Instrumentation) на компьютерах популярных производителей: HP, Lenovo, Dell.

Базовые параметры BIOS можно получить на любом компьютере с помощью командлета Get-WmiObject из класса Win32_BIOS:

Get-WmiObject -Class Win32_BIOS | Format-List *

Данная команда позволяет получить версию BIOS (SMBIOSBIOSVersion, BIOSVersion), производителя (Manufacturer), серийный номер компьютера (SerialNumber), дату выпуска (ReleaseDate) и ряд других параметров.

Get-WmiObject -Class Win32_BIOS

Можно вывести только определенные параметры BIOS, например, производителя и версию BIOS.

Get-WmiObject -Class Win32_BIOS | Select-Object Manufacturer, SMBIOSBIOSVersion

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

Управление BIOS из PowerShell на компьютерах Lenovo

Например, на компьютерах Lenovo список некоторых параметров BIOS и их значений можно получить так:

Get-WmiObject -class Lenovo_BiosSetting -namespace root\wmi

Можно вывести только имена настроек BIOS и текущие значения:

Get-WmiObject -class Lenovo_BiosSetting -namespace root\wmi | select-object InstanceName, currentsetting

Получить настройки BIOS на компьютере Lenovo из Powershell

Проверим, что на компьютере Lenovo установлен пароль для входа в BIOS:

(gwmi -Class Lenovo_BiosPasswordSettings -Namespace root\wmi).PasswordState

Если команда вернула 0, значит пароль для входа в BIOS не установлен.

проверить наличие пароля BIOS Lenovo_BiosPasswordSettings -> PasswordState

Вы можете изменить некоторые параметры BIOS на компьютерах Lenovo. Например, включим на компьютере WOL:

$getLenovoBIOS = gwmi -class Lenovo_SetBiosSetting -namespace root\wmi
$getLenovoBIOS.SetBiosSetting("WakeOnLAN,Enable")
$SaveLenovoBIOS = (gwmi -class Lenovo_SaveBiosSettings -namespace root\wmi)
$SaveLenovoBIOS.SaveBiosSettings()

Настройка BIOS из PowerShell на компьютерах Hewlett-Packard

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

Get-WmiObject -Namespace root/hp/instrumentedBIOS -Class hp_biosEnumeration | select Name, value, possiblevalues –AutoSize

Вы можете изменить некоторые настройки BIOS на компьютерах HP из PowerShell. Например, вы хотите отключить загрузку компьютера с USB устройств.

$getHPBios = gwmi -class hp_biossettinginterface -Namespace "root\hp\instrumentedbios"
$getHPBios.SetBIOSSetting('USB Storage Boot','Disable')

Если для изменения настроек BIOS требуется указать пароль, вы можете использовать следующий скрипт:

$HPBIOSPassword = "<utf-16/>"+"P@$$w0rd"
$getHPBios = gwmi -class hp_biossettinginterface -Namespace "root\hp\instrumentedbios"
$getHPBios.SetBIOSSetting(‘Network (PXE) Boot','Disable',$HPBIOSPassword)

Если последняя команда вернула “Return 0”, значит она отработала успешно. Можно сделать простейший обработчик:

$ChangeBIOS_State = $bios.setbiossetting(Network (PXE) Boot', 'Disable' , $HPBIOSPassword)
$ChangeBIOS_State_Code = $ChangeBIOS_State.return
If(($ChangeBIOS_State_Code) -eq 0)
{
write-host "OK"
}
Else
{
write-host "Error - (Return code $ChangeBIOS_State_Code)" -Foreground Red
}

Если вы хотите включить в BIOS LAN/WLAN Switching на ноутбуке HP для автоматического отключения от Wi-FI при наличии Ethernet подключения, выполните команду:

$getHPBios.SetBIOSSetting('LAN/WLAN Switching','Enable')

Настройка BIOS на устройствах DELL из PowerShell

На компьютерах DELL для просмотра и управления параметрами BIOS вы можете использовать WMI класс DCIM-BIOSService или более новый класс root\dellomci (доступен после установки пакета OMCI — Open Manage Client Instrumentation).

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

Get-WmiObject -NameSpace root\dellomci Dell_BootDeviceSequence | sort bootorder | select BootDeviceName, BootOrder

класс dellomci для получения параметров bios на компьютерах DELL

Например, вы можете включить Wake on LAN в BIOS следующим образом:

(Get-WmiObject DCIM-BIOSService -namespace rootdcimsysman).SetBIOSAttributes($null,$null,"Wake-On-LAN","4")

Кроме того, Dell выпустила отдельный PowerShell модуль DellBIOSProvider, который устанавливается при установке драйверов либо вы можете установить его вручную командой:

Install-Module -Name DellBIOSProvider -Force

С помощью этого модуля вы можете получить порядок загрузки на компьютере Dell:

Get-ChildItem DellSmbios:\BootSequence\Bootsequence

Чтобы изменить параметр BIOS используйте командлет Set-Item. Например, чтобы изменить пароль BIOS:

Set-Item -Path Dellsmbios\Security\AdminPassword –Value 0ldDellP@ss –Password Newde11P@ss

С помощью описанных выше методик вы можете для своих моделей ПК создать PowerShell скрипт, который экспортирует текущие настройки BIOS с эталонного компьютера (например, в CSV) и применяет их на все остальные компьютерах такой же модели. Таким образом можно добиться стандартизации настроек BIOS на всех компьютерах в сети.


Предыдущая статья Следующая статья


Комментариев: 0 Оставить комментарий

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)