U kunt PowerShell gebruiken om BIOS/UEFI-instellingen op een Windows-computer te bekijken of te wijzigen. In dit artikel zullen we bekijken hoe u Windows PowerShell kunt gebruiken om de BIOS-instellingen van computers op te halen of te wijzigen op gewone computers en op apparaten van populaire merken (HP, Lenovo, Dell en Toshiba).
Inhoud:
- Controleer de BIOS/UEFI-versie met PowerShell
- BIOS-instellingen ophalen of wijzigen met de Get-BIOS-module
- Geef een overzicht van de BIOS-instellingen op een Lenovo-apparaat met PowerShell
- PowerShell: BIOS-instellingen op HP computers weergeven en wijzigen
- Configureer DELL BIOS-instellingen met PowerShell
Controleer de BIOS/UEFI-versie met PowerShell
De WMI-klasseWin32_BIOSbiedt basisinformatie over het BIOS van de computer (UEFI). U kunt gebruik maken van deGet-WmiObjectcmdlet om BIOS-informatie op te halen van WMI (Windows Management Instrumentation).
Get-WmiObject -Class Win32_BIOS

Standaard retourneert de opdracht informatie over de BIOS-versie (SMBIOSBIOSVersion), fabrikant, serienummer en computermodel.
U moet CIM-klassen gebruiken in plaats van WMI-klassen in de nieuwste versies van PowerShell Core 7.x. In dit geval zou het vorige commando er als volgt uit moeten zien:
Get-CimInstance -Class Win32_BIOS
Om de volledige lijst met BIOS-parameters te bekijken die beschikbaar zijn in deWin32_BIOSWMI-klasse, gebruik het commando:
Get-WmiObject -Class Win32_BIOS | Format-List *


U kunt alleen de BIOS-instellingen bekijken waarin u geïnteresseerd bent. Bijvoorbeeld BIOS-versie, serienummer van de computer, fabrikant en releasedatum:
Get-WmiObject -Class Win32_BIOS | Select SMBIOSBIOSVersion, Manufacturer, SerialNumber, ReleaseDate
U kunt ook BIOS-informatie ophalen van een externe computer:
Get-WmiObject -Class Win32_BIOS -ComputerName MUN-WKS41
Computer-BIOS-informatie wordt opgeslagen in het Windows-register. U kunt BIOS-informatie rechtstreeks uit het register ophalen met behulp van PowerShell:
Get-ItemProperty -Path HKLM:HARDWAREDESCRIPTIONSystemBIOS


De Win32_BIOS is een generieke klasse die kan worden gebruikt om basis BIOS-informatie op elk Windows-apparaat te verkrijgen. Sommige hardwareleveranciers bieden echter speciale WMI-klassen om rechtstreeks vanuit het Windows-besturingssysteem toegang te krijgen tot het BIOS (u moet de eigen stuurprogramma's van de fabrikant installeren).
BIOS-instellingen ophalen of wijzigen met de Get-BIOS-module
U kunt een aparte module van PSGallery gebruiken, genaamdGet-BIOSom BIOS/UEFI-instellingen op te halen voor Dell-, HP-, Lenovo- en Toshiba-computers.
Installeer de module vanuit de online PowerShell-galerij (PowerShell-modules kunnen offline worden geïnstalleerd):
Install-Module GetBIOS


Om de BIOS-instellingen van uw computer te bekijken, voert u de opdracht uit:
Get-BIOS


Bij sommige BIOS-versies kunt u niet alleen de huidige waarde van de BIOS-parameter weergeven, maar ook de beschrijving ervan en de mogelijke waarden:
Get-BIOS -ShowDescription
Er is ook een module van dezelfde ontwikkelaar waarmee u de BIOS-instellingen op Dell-, Lenovo- en HP-machines kunt wijzigen.
Install-Module SetBIOS
Lees ook:Wijzig het BIOS van Legacy naar UEFI zonder Windows opnieuw te installeren
U moet een CSV-bestand in de volgende indeling maken om de BIOS-instellingen van uw apparaat te wijzigen: {Setting, Value}.


Om een CSV-bestand met de BIOS-instellingen toe te passen, voert u de volgende opdracht uit
Set-BIOS -Path "YourBIOSSettingsFile.csv"
Als het BIOS met een wachtwoord is beveiligd, voeg dan toe-Passwordnaar de optie.
Geef een overzicht van de BIOS-instellingen op een Lenovo-apparaat met PowerShell
Huidige BIOS-instellingen worden opgeslagen in een aparte WMI-klasseLenovocomputers. U kunt de beschikbare BIOS-opties en hun waarden op het Lenovo-apparaat weergeven:
Get-WmiObject -class Lenovo_BiosSetting -namespace rootwmi | select-object InstanceName, currentsetting


Laten we controleren of het BIOS-wachtwoord is ingesteld op uw Lenovo-computer:
(gwmi -Class Lenovo_BiosPasswordSettings -Namespace rootwmi).PasswordState
Als de opdracht 0 retourneert, is het BIOS-beveiligingswachtwoord niet ingesteld.


Wijzig het BIOS-beheerderswachtwoord op uw Lenovo-apparaat:
(gwmi -Class Lenovo_SetBiosPassword -Namespace rootwmi).SetBiosPassword("pap,oldPassword,newPassword,ascii,us")
U kunt enkele BIOS-parameters op Lenovo-computers wijzigen. Laten we bijvoorbeeld WOL (Wake-On-LAN) inschakelen:
$getLenovoBIOS = gwmi -class Lenovo_SetBiosSetting -namespace rootwmi
$getLenovoBIOS.SetBiosSetting("WakeOnLAN,Enable")
$SaveLenovoBIOS = (gwmi -class Lenovo_SaveBiosSettings -namespace rootwmi)
$SaveLenovoBIOS.SaveBiosSettings()
Reset de BIOS-instellingen van uw Lenovo-apparaat naar de fabrieksinstellingen:
$DefaultSettings = Get-WmiObject -Namespace rootwmi -Class Lenovo_LoadDefaultSettings
$DefaultSettings.LoadDefaultSettings("CurrentBIOSPassword,ascii,us")
PowerShell: BIOS-instellingen op HP computers weergeven en wijzigen
U kunt de beschikbare BIOS-opties, hun waarden en beschikbare opties weergeven opHewlett Packardcomputers/laptops met behulp van de volgende opdracht:
Get-WmiObject -Namespace root/hp/instrumentedBIOS -Class hp_biosEnumeration | select Name, value, possiblevalues –AutoSize
Op HP-computers kunt u PowerShell gebruiken om bepaalde BIOS-instellingen te wijzigen. U kunt bijvoorbeeld de mogelijkheid uitschakelen om uw computer op te starten vanaf een USB-opslagapparaat.
$getHPBios = gwmi -class hp_biossettinginterface -Namespace "roothpinstrumentedbios"
$getHPBios.SetBIOSSetting('USB Storage Boot','Disable')
Als er een wachtwoord vereist is om de BIOS-instellingen op een HP-apparaat te wijzigen, kunt u dit script gebruiken:
$HPBIOSPassword = "<utf-16/>"+"Passw0rd!1"
$getHPBios = gwmi -class hp_biossettinginterface -Namespace "roothpinstrumentedbios"
$getHPBios.SetBIOSSetting(‘Network (PXE) Boot','Disable',$HPBIOSPassword)
Als het laatste commando “0” heeft geretourneerd, is het met succes uitgevoerd. U kunt een eenvoudige PowerShell-handler gebruiken:
$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
}
Als u de LAN/WLAN-switching in het BIOS op een HP laptop wilt inschakelen om automatisch de verbinding met Wi-Fi te verbreken wanneer er een Ethernet-verbinding beschikbaar is, voert u deze opdracht uit:
$getHPBios.SetBIOSSetting('LAN/WLAN Switching','Enable')
Je kunt ook deHP Client Management-scriptbibliotheek(CMSL)-extensie op uw Hewlett-Packard-apparaat (https://www.hp.com/us-en/solutions/client-management-solutions/download.html). CMSL bevat verschillende PowerShell-modules waarmee u BIOS/UEFU-instellingen kunt ophalen of wijzigen, firmware kunt bijwerken, enz.
Exporteer de huidige BIOS-instellingen naar een tekstbestand:
Get-HPBIOSSettingsList | Out-File -FilePath ‘C:ProgramDataHPCMSLLogsCurrentBIOSSettings.txt’
Schakel de optie WLAN Auto Switching in de HP BIOS-instellingen in:
Set-HPBIOSSettingValue -Name "LAN/WLAN Auto Switching" -Value Enable -Password BiosPass000rd
Configureer DELL BIOS-instellingen met PowerShell
U kunt BIOS-instellingen bekijken en beheren opDELLcomputers die gebruik maken van deDCIM-BIOSServiceWMI-klasse of modernrootdellomciklasse (beschikbaar na installatie van OMCI, Open Manage Client Instrumentation).
Om de volgorde van de opstartapparaten in het BIOS op Dell computers te bekijken, voert u de volgende opdracht uit:
Get-WmiObject -NameSpace rootdellomci Dell_BootDeviceSequence | sort bootorder | select BootDeviceName, BootOrder


U kunt Wake on LAN bijvoorbeeld als volgt in het BIOS inschakelen:
(Get-WmiObject DCIM-BIOSService -namespace rootdcimsysman).SetBIOSAttributes($null,$null,"Wake-On-LAN","4")
Bovendien kunt u voor Dell-computers de officiële versie gebruikenDellBIOSProviderPowerShell-module, die wordt geïnstalleerd als onderdeel van het installatieproces van het stuurprogramma, of u kunt deze handmatig installeren met de opdracht:
Install-Module -Name DellBIOSProvider -Force
U kunt deze module bijvoorbeeld gebruiken om de opstartvolgorde op uw Dell-computer op te halen:
Get-Item DellSmbios:BootSequenceBootsequence
Controleer of het BIOS-wachtwoord is ingesteld:
Get-Item -Path DellSmbios:SecurityIsAdminPasswordSet
Wijzig het BIOS-beveiligingswachtwoord op een Dell apparaat:
Set-Item -Path DellsmbiosSecurityAdminPassword –Value BadDellPa$$ –Password G00dDe11P@ss
We hebben gekeken hoe u PowerShell kunt gebruiken om BIOS-instellingen op Windows-apparaten op te halen en te wijzigen. Hiermee kunt u de BIOS/UEFI-instellingen op al uw computers verenigen (met behulp van SCCM, Intune, MDT, enz.).













