Управление bios из powershell
30.05.2019
itpro
PowerShell, Windows 10
Комментариев пока нет
Вы можете использовать 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) и ряд других параметров.
Можно вывести только определенные параметры 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
Проверим, что на компьютере Lenovo установлен пароль для входа в BIOS:
(gwmi -Class Lenovo_BiosPasswordSettings -Namespace root\wmi).PasswordState
Если команда вернула 0, значит пароль для входа в BIOS не установлен.
Вы можете изменить некоторые параметры 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 = ""+"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 подключения, выполните команду:
Настройка 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
Например, вы можете включить 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:
Чтобы изменить параметр BIOS используйте командлет Set-Item. Например, чтобы изменить пароль BIOS:
Set-Item -Path Dellsmbios\Security\AdminPassword –Value 0ldDellP@ss –Password Newde11P@ss
С помощью описанных выше методик вы можете для своих моделей ПК создать PowerShell скрипт, который экспортирует текущие настройки BIOS с эталонного компьютера (например, в CSV) и применяет их на все остальные компьютерах такой же модели. Таким образом можно добиться стандартизации настроек BIOS на всех компьютерах в сети.
Вы можете использовать PowerShell для просмотра или изменения настроек BIOS на вашем компьютере под управлением Windows. Рассмотрим несколько примеров, которые можно использовать для получения или изменения некоторых настроек BIOS с помощью PowerShell через классы WMI (инструментарий управления Windows) на компьютерах популярных поставщиков: HP, Lenovo, Dell.
Вы можете просмотреть основные параметры BIOS на своём компьютере с помощью командлета Get-WmiObject из класса Win32_BIOS:
Эта команда позволяет просматривать версию BIOS (SMBIOSBIOSVersion, BIOSVersion), производителя оборудования, серийный номер компьютера, дату выпуска и некоторую другую информацию.
Вы можете перечислить только некоторые из этих параметров BIOS:
Вы можете использовать класс Win32_BIOS для просмотра некоторой информации о BIOS на любом компьютере под управлением Windows. Однако некоторые поставщики оборудования предоставляют специальные классы WMI для прямого доступа к BIOS из ОС Windows (на компьютере должны быть установлены собственные драйверы от производителя оборудования).
Управление настройками BIOS Lenovo из PowerShell
Получить список параметров BIOS и их значений на компьютерах Lenovo можно так:
Чтобы отображались только названия настроек BIOS и их текущие значения:
Давайте проверим, установлен ли на вашем компьютере Lenovo пароль для доступа к BIOS:
Если команда вернула 0, значит пароль для входа в BIOS не установлен.
Вы можете изменить некоторые параметры BIOS на компьютерах Lenovo. Например, давайте включим WOL (Wake-On-LAN):
Изменение настроек BIOS из PowerShell на компьютерах Hewlett-Packard
Чтобы получить настройки BIOS, их значения и доступные параметры на компьютерах HP, вы можете использовать следующую команду:
Вы можете изменить некоторые настройки BIOS на компьютерах HP из PowerShell. Например, вы хотите отключить загрузку компьютера с USB-устройств.
Если для изменения настроек BIOS требуется пароль, вы можете использовать этот скрипт:
Если последняя команда вернула «0», она была успешно выполнена. Вы можете использовать простой обработчик PowerShell:
Если вы хотите включить переключение LAN/WLAN в BIOS на ноутбуке HP для автоматического отключения от Wi-Fi при наличии подключения Ethernet, выполните следующую команду:
Настройка параметров BIOS DELL с помощью PowerShell
Для просмотра и управления настройками BIOS на компьютерах DELL можно использовать класс DCIM-BIOSService WMI или более современный класс root\dellomci (доступен после установки пакета OMCI — Open Manage Client Instrumentation).
Чтобы просмотреть порядок загрузочных устройств в BIOS на компьютерах Dell, выполните следующую команду:
Например, вы можете включить Wake on LAN в BIOS следующим образом:
Кроме того, Dell выпустила отдельный модуль PowerShell, DellBIOSProvider, который устанавливается вместе с установкой драйвера, или вы можете установить его вручную с помощью этой команды:
Этот модуль можно использовать для просмотра последовательности загрузки на компьютере Dell:
Чтобы изменить конкретный параметр BIOS, используйте командлет Set-Item. Например, чтобы изменить пароль BIOS:
Используя описанные выше методы, вы можете создать сценарий PowerShell для экспорта текущих настроек BIOS с эталонного компьютера (например, в файл CSV). Затем вы можете использовать PowerShell для развёртывания одних и тех же настроек BIOS на всех компьютерах вашей компании.
На каждом компьютере есть BIOS, запускающий компьютер. Мы можем настроить различные параметры оборудования в BIOS. Чтобы получить доступ к BIOS, нажмите клавиши F2, F12 или DEL в зависимости от производителя компьютера.
По определению, базовая система ввода / вывода (BIOS) — это набор компьютерных инструкций в микропрограммном обеспечении, которые управляют входами и выходами компьютера. Это можно назвать серией алгоритмов для соответствующего функционирования аппаратного обеспечения компьютера, которые контролируются программным обеспечением. Микропроцессор в компьютере также выполняет свои функции с помощью BIOS.
Некоторая информация в BIOS ценна и время от времени требуется пользователю. Это включает серийный номер компьютера, бирку ресурса, версию BIOS и т.д.
Проблема в том, что пользователю необходимо перезагрузить компьютер, чтобы получить доступ к BIOS. К нему нельзя получить доступ напрямую из Windows.
Есть способ извлечь полезную информацию из BIOS компьютера. Давайте обсудим:
Доступ к информации о BIOS из Windows 10 с помощью PowerShell
Перейдите в меню «Пуск» и найдите PowerShell. Щелкните правой кнопкой мыши Windows PowerShell и выберите Запуск от имени администратора .
Выполните следующую команду в PowerShell, чтобы просмотреть все текущие настройки BIOS:
Некоторую другую полезную информацию также можно получить из PowerShell с помощью различных команд.
Если вы хотите получить серийный номер компьютера или метку актива , введите следующую команду:
Просмотр информации о BIOS из Windows 10 с помощью командной строки
Чтобы получить только серийный номер, используйте следующую команду:
Если вы хотите получить версию BIOS, введите следующую команду:
Ряд индивидуализированной информации можно получить из BIOS. Список автоматически создается следующей командой, которая предлагает, какие команды вы можете ввести, чтобы получить соответствующую информацию:
На изображении, показанном выше, можно увидеть, что команда отобразила список слов, которые могут заменить «/?» в команде wmic bios get /? . Например, если вы хотите получить статус машины, просто введите следующую команду:
Более того, еще одна полезная информация, которую можно получить, — это память (RAM) компьютера. Его можно получить из Windows PowerShell с помощью следующей команды:
Отображаемая информация будет относиться к отдельным картам памяти, а число будет отображаться в байтах, как в примере ниже:
Надеюсь, это будет полезно, если вы хотите получать информацию из BIOS при работе с Windows 10 и не хотите перезагружать компьютер.
Эта информация полезна для вас? Какого типа информация обычно требуется от BIOS?
Самый простой способ просмотра информации о вашем компьютере — использовать графические инструменты Windows, такие как диспетчер задач или системная информация. Однако некоторые люди предпочитают использовать командную строку или PowerShell практически для чего угодно. Если вам интересно, как получить системную информацию в CMD (командная строка), или если вы хотите узнать, как управлять запущенными процессами из командной строки, читайте дальше. Мы собираемся показать, как вы можете делать все эти вещи
ПРИМЕЧАНИЕ. Информация в этом руководстве относится к Windows 10, Windows 8.1 и Windows 7, и команды работают как в командной строке, так и в PowerShell.
1. Используйте команду systeminfo для получения системной информации
В Windows есть встроенная команда для проверки конфигурации системы. Он называется systeminfo и, когда вы его запускаете, показывает длинный список информации о вашем компьютере. Откройте командную строку или PowerShell, введите systeminfo и нажмите Enter.
Вы видите, что происходит? Команда systeminfo отображает список деталей о вашей операционной системе, компьютерном оборудовании и программных компонентах. Вы видите детали, такие как версия операционной системы, установленной на вашем компьютере, состояние вашей оперативной памяти или процессора, который у вас есть. Также есть некоторая информация о сети, такая как IP и MAC- адреса ваших сетевых карт.
2. Используйте команду tasklist, чтобы увидеть список запущенных процессов в Windows
Чтобы просмотреть список запущенных процессов, вы можете использовать команду tasklist, как в командной строке, так и в PowerShell. Введите список задач и нажмите Enter.
Команда должна вывести список, аналогичный приведенному выше, с подробной информацией об именах запущенных процессов, их PID (идентификатор процесса) и используемой ими памяти.
3. Используйте команду taskkill, чтобы остановить процесс
Чтобы убить или остановить запущенный процесс из командной строки или PowerShell, вы можете использовать команду taskkill . Давайте предположим, что вы хотите остановить OneDrive. Его процесс называется OneDrive.exe. Чтобы убить его, вы должны запустить команду taskkill /f /im OneDrive.exe . Параметр /f указывает Windows принудительно завершить процесс, а параметр /im используется для идентификации и остановки процесса путем ввода его имени.
Есть моменты, когда вам нужно открыть программу дважды или даже несколько раз. Каждое новое окно, а иногда и вкладки определенной программы (например, Firefox) создают отдельный процесс, называемый экземпляром, с прикрепленным к нему уникальным PID (идентификатор процесса).
Чтобы остановить один экземпляр процесса, вам нужно указать его PID (идентификатор процесса) . Давайте предположим, что на вашем компьютере открыто несколько экземпляров Firefox. Имя процесса — firefox.exe, но вы хотите закрыть только один из запущенных экземпляров (вкладки, окна).
Если вы хотите завершить процесс с PID 2492, вам нужно набрать taskkill /PID 2492 и нажать Enter.
Другой параметр, который вы можете использовать для команды taskkill — это /t . Этот параметр позволяет завершить указанный процесс и любые дочерние процессы, которые были запущены им. Возьмите тот же пример: процесс Firefox. Давайте предположим, что у вас есть восемь процессов, и вы хотите убить их всех с помощью параметра /t . Вы должны ввести команду « taskkill /t /im firefox.exe » и затем нажать Enter. Посмотрите на скриншот ниже, чтобы увидеть подтверждение введенной вами команды.
Обратите внимание, что если вы неправильно используете команды, перечисленные в этой статье, вы рискуете потерять данные, открытые в запущенных процессах. Важно быть осторожным и иметь резервную копию ваших данных. Поэтому действуйте осторожно и не говорите, что мы вас не предупреждали. 🙂
ПРИМЕЧАНИЕ. Чтобы уничтожить любой запущенный процесс, вам нужно запустить командную строку или PowerShell от имени администратора. Если вы не знаете, как, прочитайте: 9 способов запуска программ с правами администратора в Windows .
Вам нравится использовать командную строку для проверки системной информации и управления запущенными процессами?
Вы знаете, как отобразить системную информацию вашего ПК и как остановить процессы, используя несколько текстовых команд в командной строке или PowerShell. Вы не чувствуете себя сейчас отвратительно? Если вы это сделаете, прокомментируйте ниже и расскажите, насколько вам нравится использование CMD или PowerShell. 🙂
You can use PowerShell to view or change BIOS settings on your computer running Windows. Let’s consider some examples you can use to get or modify some BIOS settings with PowerShell through the WMI classes (Windows Management Instrumentation) on the computers of popular vendors: HP, Lenovo, Dell.
You can view basic BIOS parameters on your computer using the Get-WmiObject cmdlet from the Win32_BIOS class:
Get-WmiObject -Class Win32_BIOS | Format-List *
This command allows you to view your BIOS version (SMBIOSBIOSVersion, BIOSVersion), hardware manufacturer, computer serial number, the ReleaseDate and some other information.
You can list only some of these BIOS parameters:
Get-WmiObject -Class Win32_BIOS | Select-Object Manufacturer, SMBIOSBIOSVersion
You can use the Win32_BIOS class to view some BIOS information on any computer running Windows. However, some hardware vendors provide special WMI classes to direct access BIOS from Windows OS (the native drivers by your hardware manufacturer must be installed on a computer).
Lenovo BIOS Settings Management from PowerShell
You can get the list of BIOS parameters and their values on Lenovo computers like this:
Get-WmiObject -class Lenovo_BiosSetting -namespace root\wmi
To display only the names of BIOS settings and their current values:
Get-WmiObject -class Lenovo_BiosSetting -namespace root\wmi | select-object InstanceName, currentsetting
Let’s check if the password to access BIOS is set on your Lenovo computer:
(gwmi -Class Lenovo_BiosPasswordSettings -Namespace root\wmi).PasswordState
If the command returned 0, then the password to enter BIOS is not set.
You can change some BIOS parameters on Lenovo computers. For example, let’s enable 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()
Change BIOS Setting from PowerShell on Hewlett-Packard Computers
To get BIOS settings, their values and available options on HP computers, you can use the following command:
Get-WmiObject -Namespace root/hp/instrumentedBIOS -Class hp_biosEnumeration | select Name, value, possiblevalues –AutoSize
You can change some BIOS settings on HP computers from PowerShell. For example, you want to disable booting your computer from USB devices.
$getHPBios = gwmi -class hp_biossettinginterface -Namespace "root\hp\instrumentedbios"
$getHPBios.SetBIOSSetting('USB Storage Boot','Disable')
If a password is required to change BIOS settings, you can use this script:
$HPBIOSPassword = ""+"Passw0rd!1"
$getHPBios = gwmi -class hp_biossettinginterface -Namespace "root\hp\instrumentedbios"
$getHPBios.SetBIOSSetting(‘Network (PXE) Boot','Disable',$HPBIOSPassword)
If the last command has returned “0”, it has been executed successfully. You can use a simple PowerShell handler:
$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
>
If you want to enable LAN/WLAN Switching in BIOS on an HP laptop to automatically disconnect from Wi-Fi when an Ethernet connection is available, run this command:
Configuring DELL BIOS Settings with PowerShell
To view and manage BIOS settings on DELL computers, you can use the DCIM-BIOSService WMI class or the more modern root\dellomci class (available after the installation of the OMCI package — Open Manage Client Instrumentation).
To view the boot device order in BIOS on Dell computers, run the following command:
Get-WmiObject -NameSpace root\dellomci Dell_BootDeviceSequence | sort bootorder | select BootDeviceName, BootOrder
For example, you can enable Wake on LAN in BIOS like that:
(Get-WmiObject DCIM-BIOSService -namespace rootdcimsysman).SetBIOSAttributes($null,$null,"Wake-On-LAN","4")
Also, Dell released a separate PowerShell module, DellBIOSProvider, which is installed alongside driver installation or you can install it manually with this command:
Install-Module -Name DellBIOSProvider -Force
You can use this module to view the boot sequence on a Dell computer:
To change a specific BIOS setting, use the Set-Item cmdlet. For example, to change the BIOS password:
Set-Item -Path Dellsmbios\Security\AdminPassword –Value BadDellPa$$ –Password G00dDe11P@ss
Using the methods described above, you can create a PowerShell script to export the current BIOS settings from a reference computer (e. g., to a CSV file). Then, you can use PowerShell to deploy the same BIOS settings on all computers in your company.
Читайте также: