Использование PowerShell для просмотра и изменения настроек BIOS

Вы можете использовать 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 на всех компьютерах вашей компании.


Добавить комментарий

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

wp-puzzle.com logo