Hur man visar och ändrar BIOS-inställningar (UEFI) med PowerShell

Du kan använda PowerShell för att visa eller ändra BIOS/UEFI-inställningar på en Windows-dator. I den här artikeln kommer vi att titta på hur du använder Windows PowerShell för att hämta eller ändra datorns BIOS-inställningar på vanliga datorer och på populära märkesenheter (HP, Lenovo, Dell och Toshiba).

Innehåll:

Kontrollera BIOS/UEFI-versionen med PowerShell

WMI-klassenWin32_BIOSger grundläggande information om datorns BIOS (UEFI). Du kan användaGet-WmiObjectcmdlet för att hämta BIOS-information från WMI (Windows Management Instrumentation).

Get-WmiObject -Class Win32_BIOS

Som standard returnerar kommandot information om BIOS-versionen (SMBIOSBIOSVersion), tillverkare, serienummer och datormodell.

Du måste använda CIM-klasser istället för WMI-klasser i de senaste versionerna av PowerShell Core 7.x. I det här fallet bör det föregående kommandot se ut så här:

Get-CimInstance -Class Win32_BIOS

För att se hela listan över BIOS-parametrar som är tillgängliga iWin32_BIOSWMI-klass, använd kommandot:

Get-WmiObject -Class Win32_BIOS | Format-List *

Du kan bara se de BIOS-inställningar du är intresserad av. Till exempel BIOS-version, datorns serienummer, tillverkare och releasedatum:

Get-WmiObject -Class Win32_BIOS | Select SMBIOSBIOSVersion, Manufacturer, SerialNumber, ReleaseDate

Du kan också få BIOS-information från en fjärrdator:

Get-WmiObject -Class Win32_BIOS -ComputerName MUN-WKS41

Datorns BIOS-information lagras i Windows-registret. Du kan få BIOS-information direkt från registret med PowerShell:

Get-ItemProperty -Path HKLM:HARDWAREDESCRIPTIONSystemBIOS

Win32_BIOS är en generisk klass som kan användas för att få grundläggande BIOS-information på vilken Windows-enhet som helst. Vissa hårdvaruleverantörer tillhandahåller dock speciella WMI-klasser för att komma åt BIOS direkt från Windows OS (du måste installera tillverkarens inbyggda drivrutiner.).

Hur man hämtar eller ändrar BIOS-inställningar med Get-BIOS-modulen

Du kan använda en separat modul av PSGallery som heterSkaffa-BIOSför att få BIOS/UEFI-inställningar för Dell-, HP-, Lenovo- och Toshiba-datorer.

Installera modulen från PowerShell onlinegalleriet (PowerShell-moduler kan installeras offline):

Install-Module GetBIOS

För att se din dators BIOS-inställningar, kör kommandot:

Get-BIOS

Med vissa versioner av BIOS kan du visa inte bara det aktuella värdet för BIOS-parametern utan även dess beskrivning och möjliga värden:

Get-BIOS -ShowDescription

Det finns också en modul från samma utvecklare som låter dig ändra BIOS-inställningarna på Dell-, Lenovo- och HP-maskiner.

Install-Module SetBIOS

Läs även:Ändra BIOS från Legacy till UEFI utan att installera om Windows

Du måste skapa en CSV-fil i följande format för att ändra enhetens BIOS-inställningar: {Setting, Value}.

För att använda en CSV-fil som innehåller BIOS-inställningarna, kör följande kommando

Set-BIOS -Path "YourBIOSSettingsFile.csv"

Om BIOS är lösenordsskyddat, lägg till-Passwordtill alternativet.

Lista BIOS-inställningar på Lenovo-enhet med PowerShell

Aktuella BIOS-inställningar lagras i en separat WMI-klass påLenovodatorer. Du kan lista de tillgängliga BIOS-alternativen och deras värden på Lenovo-enheten:

Get-WmiObject -class Lenovo_BiosSetting -namespace rootwmi | select-object InstanceName, currentsetting

Låt oss kontrollera om BIOS-lösenordet är inställt på din Lenovo-dator:

(gwmi -Class Lenovo_BiosPasswordSettings -Namespace rootwmi).PasswordState

Om kommandot returnerade 0, är ​​BIOS-säkerhetslösenordet inte inställt.

Ändra BIOS-administratörslösenord på din Lenovo-enhet:

(gwmi -Class Lenovo_SetBiosPassword -Namespace rootwmi).SetBiosPassword("pap,oldPassword,newPassword,ascii,us")

Du kan ändra vissa BIOS-parametrar på Lenovo-datorer. Låt oss till exempel aktivera WOL (Wake-On-LAN):

$getLenovoBIOS = gwmi -class Lenovo_SetBiosSetting -namespace rootwmi
$getLenovoBIOS.SetBiosSetting("WakeOnLAN,Enable")
$SaveLenovoBIOS = (gwmi -class Lenovo_SaveBiosSettings -namespace rootwmi)
$SaveLenovoBIOS.SaveBiosSettings()

Återställ din Lenovo-enhets BIOS-inställningar till fabriksinställningarna:

$DefaultSettings = Get-WmiObject -Namespace rootwmi -Class Lenovo_LoadDefaultSettings
$DefaultSettings.LoadDefaultSettings("CurrentBIOSPassword,ascii,us")

PowerShell: Lista och ändra BIOS-inställningar på HP-datorer

Du kan lista de tillgängliga BIOS-alternativen, deras värden och tillgängliga alternativ påHewlett Packarddatorer/bärbara datorer med följande kommando:

Get-WmiObject -Namespace root/hp/instrumentedBIOS -Class hp_biosEnumeration | select Name, value, possiblevalues –AutoSize

På HP-datorer kan du använda PowerShell för att ändra vissa BIOS-inställningar. Du kan till exempel inaktivera möjligheten att starta din dator från en USB-lagringsenhet.

$getHPBios = gwmi -class hp_biossettinginterface -Namespace "roothpinstrumentedbios"
$getHPBios.SetBIOSSetting('USB Storage Boot','Disable')

Om ett lösenord krävs för att ändra BIOS-inställningar på en HP-enhet kan du använda det här skriptet:

$HPBIOSPassword = "<utf-16/>"+"Passw0rd!1"
$getHPBios = gwmi -class hp_biossettinginterface -Namespace "roothpinstrumentedbios"
$getHPBios.SetBIOSSetting(‘Network (PXE) Boot','Disable',$HPBIOSPassword)

Om det senaste kommandot har returnerat "0", utfördes det framgångsrikt. Du kan använda en enkel PowerShell-hanterare:

$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
}

Om du vill aktivera LAN/WLAN-växling i BIOS på en bärbar HP-dator för att automatiskt koppla från Wi-Fi när en Ethernet-anslutning är tillgänglig, kör det här kommandot:

$getHPBios.SetBIOSSetting('LAN/WLAN Switching','Enable')

Du kan också installeraHP Client Management Script Library(CMSL)-tillägg på din Hewlett-Packard-enhet (https://www.hp.com/us-en/solutions/client-management-solutions/download.html). CMSL innehåller flera PowerShell-moduler som låter dig hämta eller ändra BIOS/UEFU-inställningar, uppdatera firmware, etc.

Exportera de aktuella BIOS-inställningarna till en textfil:

Get-HPBIOSSettingsList | Out-File -FilePath ‘C:ProgramDataHPCMSLLogsCurrentBIOSSettings.txt’

Aktivera alternativet WLAN Auto Switching i HP BIOS-inställningarna:

Set-HPBIOSSettingValue -Name "LAN/WLAN Auto Switching" -Value Enable -Password BiosPass000rd

Konfigurera DELL BIOS-inställningar med PowerShell

Du kan visa och hantera BIOS-inställningar påDELLdatorer som använderDCIM-BIOSServiceWMI-klass eller det modernarootdellomciklass (tillgänglig efter installation av OMCI, Open Manage Client Instrumentation).

Kör följande kommando för att se startordningen i BIOS på Dell-datorer:

Get-WmiObject -NameSpace rootdellomci Dell_BootDeviceSequence | sort bootorder | select BootDeviceName, BootOrder

Till exempel kan du aktivera Wake on LAN i BIOS så här:

(Get-WmiObject DCIM-BIOSService -namespace rootdcimsysman).SetBIOSAttributes($null,$null,"Wake-On-LAN","4")

Dessutom, för Dell-datorer, kan du använda den officiellaDellBIOSProviderPowerShell-modul, som installeras som en del av drivrutinsinstallationsprocessen, eller så kan du installera den manuellt med kommandot:

Install-Module -Name DellBIOSProvider -Force

Du kan till exempel använda den här modulen för att få startordningen på din Dell-dator:

Get-Item DellSmbios:BootSequenceBootsequence

Kontrollera att BIOS-lösenordet är inställt:

Get-Item -Path DellSmbios:SecurityIsAdminPasswordSet

Ändra BIOS-säkerhetslösenord på en Dell-enhet:

Set-Item -Path DellsmbiosSecurityAdminPassword –Value BadDellPa$$ –Password G00dDe11P@ss

Vi tittade på hur man använder PowerShell för att hämta och ändra BIOS-inställningar på Windows-enheter. Detta låter dig förena BIOS/UEFI-inställningarna på alla dina datorer (med SCCM, Intune, MDT, etc.).

Related Posts