Jak uzyskać lub zmienić ustawienia BIOS z PowerShell?

Za pomocą programu PowerShell można wyświetlić lub zmienić ustawienia systemu BIOS na komputerze z systemem Windows. Spójrzmy na kilka przykładów, których możesz użyć, aby uzyskać lub zmienić niektóre ustawienia BIOS-u za pomocą klas WMI (Instrumentacja zarządzania Windows) na komputerach popularnych producentów: HP, Lenovo, Dell.

Podstawowe parametry BIOS można uzyskać na dowolnym komputerze za pomocą polecenia cmdlet Get-WmiObject z klasy Win32_BIOS:

Get-WmiObject -Class Win32_BIOS | Lista formatów *

To polecenie pozwala uzyskać wersję systemu BIOS (SMBIOSBIOSVersion, BIOSVersion), producenta (producenta), numer seryjny komputera (SerialNumber), datę wydania (ReleaseDate) i szereg innych parametrów.

Wyświetlane mogą być tylko niektóre parametry systemu BIOS, na przykład producent i wersja systemu BIOS.

Get-WmiObject -Class Win32_BIOS | Producent wybranych obiektów, SMBIOSBIOS Wersja

Za pomocą klasy Win32_BIOS można wyświetlić informacje o systemie BIOS na dowolnym komputerze z systemem Windows. Jednak niektórzy producenci sprzętu zapewniają specjalne klasy WMI do uzyskiwania dostępu do systemu BIOS z systemu Windows (konieczne jest, aby natywne sterowniki producenta były zainstalowane na komputerze).

Zarządzanie BIOSem z PowerShell na komputerach Lenovo

Na przykład na komputerach Lenovo listę niektórych parametrów BIOS i ich wartości można uzyskać w następujący sposób:

Get-WmiObject -class Lenovo_BiosSetting -namespace root \ wmi

Możesz wyświetlać tylko nazwy ustawień BIOS i bieżące wartości:

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

Sprawdź, czy hasło do wejścia do BIOS jest ustawione na komputerze Lenovo:

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

Jeśli polecenie zwróciło 0, hasło do wejścia do BIOS nie jest ustawione.

Możesz zmienić niektóre ustawienia BIOS-u na komputerach Lenovo. Na przykład włącz komputer WOL:

$ getLenovoBIOS = gwmi -klasa Lenovo_SetBiosSetting -przestrzeń nazw root \ wmi
$ getLenovoBIOS.SetBiosSetting („WakeOnLAN, Włącz”)
$ SaveLenovoBIOS = (gwmi -klasa Lenovo_SaveBiosSettings -przestrzeń nazw root \ wmi)
$ SaveLenovoBIOS.SaveBiosSettings ()

Konfiguracja BIOS-u z PowerShell na komputerach Hewlett-Packard

Na komputerach HP Możesz użyć następującego polecenia, aby uzyskać parametry BIOS, ich wartości i dostępne opcje:

Get-WmiObject -Namepace root / hp / instrumentedBIOS -Class hp_biosEnumeration | wybierz Nazwa, wartość, możliwe wartości -AutoSize

Możesz zmienić niektóre ustawienia BIOS-u na komputerach HP z PowerShell. Na przykład chcesz wyłączyć rozruch komputera z urządzeń USB.

$ getHPBios = gwmi -klasa hp_biossettinginterface-Przestrzeń nazw „root \ hp \ instrumentedbios”
$ getHPBios.SetBIOSSetting („Boot Storage USB”, „Disable”)

Jeśli do zmiany ustawień BIOS wymagane jest hasło, możesz użyć następującego skryptu:

$ HPBIOSPassword = "" + "P @ $$ w0rd"
$ getHPBios = gwmi -klasa hp_biossettinginterface-Przestrzeń nazw „root \ hp \ instrumentedbios”
$ getHPBios.SetBIOSSetting („Uruchomienie sieci (PXE)”, „Wyłącz”, $ HPBIOSPassword)

Jeśli ostatnie polecenie zwróciło „Return 0”, to zadziałało pomyślnie. Możesz stworzyć prostą procedurę obsługi:

$ ChangeBIOS_State = $ bios.setbiossetting (rozruch sieciowy (PXE), „Wyłącz”, $ HPBIOSPassword)
$ ChangeBIOS_State_Code = $ ChangeBIOS_State.return
Jeśli (($ ChangeBIOS_State_Code) -eq 0)

host zapisu „OK”

W przeciwnym razie

write-host „Error - (Return code $ ChangeBIOS_State_Code)” -Foreground Red

Jeśli chcesz włączyć przełączanie LAN / WLAN w BIOS na swoim laptopie HP, aby automatycznie rozłączać się z Wi-Fi, gdy masz połączenie Ethernet, uruchom polecenie:

$ getHPBios.SetBIOSSetting („Przełączanie LAN / WLAN”, „Włącz”)

Konfiguracja systemu BIOS na urządzeniach DELL z PowerShell

Na komputerach Dell Aby wyświetlić parametry BIOS i zarządzać nimi, możesz użyć klasy WMI DCIM-BIOSService lub nowszej klasy root \ dellomci (dostępnej po zainstalowaniu pakietu OMCI - Open Manage Client Instrumentation).

Aby uzyskać procedurę wyliczania urządzenia rozruchowego w systemie BIOS na komputerach Dell, wykonaj następujące czynności:

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

Na przykład możesz włączyć Wake on LAN w BIOSie w następujący sposób:

(Get-WmiObject DCIM-BIOSService - przestrzeń nazw rootdcimsysman) .SetBIOSAttributes ($ null, $ null, „Wake-On-LAN”, „4”)

Dell wydał także osobny moduł PowerShell. DellBIOSProvider, który jest instalowany podczas instalowania sterowników, lub możesz zainstalować go ręcznie za pomocą polecenia:

Install-Module -Name DellBIOSProvider -Force

Za pomocą tego modułu można uzyskać kolejność rozruchu na komputerze Dell:

Get-ChildItem DellSmbios: \ BootSequence \ Bootsequence

Aby zmienić ustawienie BIOS, użyj polecenia cmdlet Set-Item. Na przykład, aby zmienić hasło BIOS:

Set-Item - Ścieżka Dellsmbios \ Security \ AdminPassword -Value 0ldDellP @ ss -Password Newde11P @ ss

Korzystając z metod opisanych powyżej, możesz utworzyć skrypt PowerShell dla swoich modeli komputerów, który eksportuje bieżące ustawienia BIOS z komputera odniesienia (na przykład do CSV) i stosuje je do wszystkich innych komputerów tego samego modelu. W ten sposób ustawienia systemu BIOS można znormalizować na wszystkich komputerach w sieci..