Вы можете использовать PowerShell для просмотра или изменения настроек BIOS на вашем компьютере под управлением Windows. Рассмотрим несколько примеров, которые можно использовать для получения или изменения некоторых настроек BIOS с помощью PowerShell через классы WMI (инструментарий управления Windows) на компьютерах популярных поставщиков: HP, Lenovo, Dell.
Вы можете просмотреть основные параметры BIOS на своём компьютере с помощью командлета Get-WmiObject из класса Win32_BIOS:
Get-WmiObject -Class Win32_BIOS | Format-List *
Эта команда позволяет просматривать версию BIOS (SMBIOSBIOSVersion, BIOSVersion), производителя оборудования, серийный номер компьютера, дату выпуска и некоторую другую информацию.
Вы можете перечислить только некоторые из этих параметров BIOS:
Get-WmiObject -Class Win32_BIOS | Select-Object Manufacturer, SMBIOSBIOSVersion
Вы можете использовать класс Win32_BIOS для просмотра некоторой информации о BIOS на любом компьютере под управлением Windows. Однако некоторые поставщики оборудования предоставляют специальные классы WMI для прямого доступа к BIOS из ОС Windows (на компьютере должны быть установлены собственные драйверы от производителя оборудования).
Управление настройками BIOS Lenovo из 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 не установлен.
Вы можете изменить некоторые параметры 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')
Настройка параметров BIOS DELL с помощью PowerShell
Для просмотра и управления настройками BIOS на компьютерах DELL можно использовать класс DCIM-BIOSService WMI или более современный класс root\dellomci (доступен после установки пакета OMCI — Open Manage Client Instrumentation).
Чтобы просмотреть порядок загрузочных устройств в 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 на всех компьютерах вашей компании.
Связанные статьи:
- Почему ноутбук издаёт писк во время работы или при выключении (93.1%)
- Что нужно знать об использовании UEFI вместо BIOS (93.1%)
- Простой способ просмотреть содержимое EFI, Microsoft Reserved Partition и любых других скрытых разделов (67.3%)
- Как работает Secure Boot (безопасная загрузка) в Windows 8 и 10 и что она означает для Linux (67.3%)
- Как включить удалённый рабочий стол RDP в Windows Server 2019 (56.9%)
- Как открыть командную строку от имени администратора в Windows 8 или 10 (RANDOM - 56.9%)