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..