Использование PowerShell для просмотра и изменения настроек BIOS
Вы можете использовать PowerShell для просмотра или изменения настроек BIOS на вашем компьютере под управлением Windows. Давайте рассмотрим несколько примеров, которые можно использовать для получения или изменения некоторых настроек BIOS с помощью PowerShell через классы WMI (Windows Management Instrumentation) на компьютерах популярных производителей: HP, Lenovo, Dell.
Просмотреть основные параметры BIOS на своем компьютере можно с помощью командлета Get-WmiObject из класса Win32_BIOS:
Get-WmiObject -Class Win32_BIOS | Format-List *Эта команда позволяет вам просмотреть версию BIOS (SMBIOSBIOSVersion, BIOSVersion), производителя оборудования, серийный номер компьютера, ReleaseDate и некоторую другую информацию.
Можно перечислить лишь некоторые из этих параметров BIOS:
Get-WmiObject -Class Win32_BIOS | Select-Object Manufacturer, SMBIOSBIOSVersion
Вы можете использовать класс Win32_BIOS для просмотра некоторой информации BIOS на любом компьютере под управлением Windows. Однако некоторые поставщики оборудования предоставляют специальные классы WMI для прямого доступа к BIOS из ОС Windows (на компьютере должны быть установлены собственные драйверы от производителя вашего оборудования).
Управление настройками Lenovo BIOS из PowerShell
Получить список параметров BIOS и их значений на компьютерах Lenovo можно следующим образом:
Get-WmiObject -class Lenovo_BiosSetting -namespace root\wmiЧтобы отобразить только названия настроек BIOS и их текущие значения:
Get-WmiObject -class Lenovo_BiosSetting -namespace root\wmi | select-object InstanceName, currentsettingДавайте проверим, установлен ли на вашем компьютере Lenovo пароль для доступа к BIOS:
(gwmi -Class Lenovo_BiosPasswordSettings -Namespace root\wmi).PasswordStateЕсли команда вернула 0, значит пароль для входа в БИОС не установлен.
Вы можете изменить некоторые параметры BIOS на компьютерах Lenovo. Например, включим WOL (Wake-On-LAN):
$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
Чтобы получить настройки BIOS, их значения и доступные параметры на компьютерах HP, вы можете использовать следующую команду:
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/>"+"Passw0rd!1"
$getHPBios = gwmi -class hp_biossettinginterface -Namespace "root\hp\instrumentedbios"
$getHPBios.SetBIOSSetting(‘Network (PXE) Boot','Disable',$HPBIOSPassword)Если последняя команда вернула «0», она выполнена успешно. Вы можете использовать простой обработчик PowerShell:
$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
}Если вы хотите включить переключение LAN/WLAN в BIOS на ноутбуке HP для автоматического отключения от Wi-Fi при наличии соединения Ethernet, выполните следующую команду:
$getHPBios.SetBIOSSetting('LAN/WLAN Switching','Enable')Настройка параметров DELL BIOS с помощью PowerShell
Для просмотра и управления настройками BIOS на компьютерах DELL вы можете использовать класс WMI DCIM-BIOSService или более современный класс root\dellomci (доступен после установки пакета OMCI — Открыть управление клиентским инструментарием).
Чтобы просмотреть порядок загрузочных устройств в BIOS на компьютерах Dell, выполните следующую команду:
Get-WmiObject -NameSpace root\dellomci Dell_BootDeviceSequence | sort bootorder | select BootDeviceName, BootOrderНапример, вы можете включить 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 BadDellPa$$ -Password G00dDe11P@ss
Используя описанные выше методы, вы можете создать сценарий PowerShell для экспорта текущих настроек BIOS с эталонного компьютера (например, в файл CSV). Затем вы можете использовать PowerShell для развертывания одинаковых настроек BIOS на всех компьютерах вашей компании.



