Sie können PowerShell verwenden, um BIOS/UEFI-Einstellungen auf einem Windows-Computer anzuzeigen oder zu ändern. In diesem Artikel schauen wir uns an, wie Sie mit Windows PowerShell Computer-BIOS-Einstellungen auf normalen Computern und auf Geräten beliebter Marken (HP, Lenovo, Dell und Toshiba) abrufen oder ändern können.
Inhalt:
- Überprüfen Sie die BIOS/UEFI-Version mit PowerShell
- So erhalten oder ändern Sie BIOS-Einstellungen mit dem Get-BIOS-Modul
- Listen Sie die BIOS-Einstellungen auf einem Lenovo-Gerät mit PowerShell auf
- PowerShell: BIOS-Einstellungen auf HP-Computern auflisten und ändern
- Konfigurieren Sie die DELL-BIOS-Einstellungen mit PowerShell
Überprüfen Sie die BIOS/UEFI-Version mit PowerShell
Die WMI-KlasseWin32_BIOSBietet grundlegende Informationen zum BIOS (UEFI) des Computers. Sie können die verwendenGet-WmiObjectCmdlet zum Abrufen von BIOS-Informationen von WMI (Windows Management Instrumentation).
Get-WmiObject -Class Win32_BIOS

Standardmäßig gibt der Befehl Informationen über die BIOS-Version (SMBIOSBIOSVersion), den Hersteller, die Seriennummer und das Computermodell zurück.
In den neuesten Versionen von PowerShell Core 7.x müssen Sie CIM-Klassen anstelle von WMI-Klassen verwenden. In diesem Fall sollte der vorherige Befehl so aussehen:
Get-CimInstance -Class Win32_BIOS
Um die vollständige Liste der BIOS-Parameter anzuzeigen, die im verfügbar sindWin32_BIOSWMI-Klasse, verwenden Sie den Befehl:
Get-WmiObject -Class Win32_BIOS | Format-List *


Sie können nur die BIOS-Einstellungen anzeigen, die Sie interessieren. Zum Beispiel BIOS-Version, Seriennummer des Computers, Hersteller und Veröffentlichungsdatum:
Get-WmiObject -Class Win32_BIOS | Select SMBIOSBIOSVersion, Manufacturer, SerialNumber, ReleaseDate
Sie können BIOS-Informationen auch von einem Remote-Computer abrufen:
Get-WmiObject -Class Win32_BIOS -ComputerName MUN-WKS41
Computer-BIOS-Informationen werden in der Windows-Registrierung gespeichert. Mit PowerShell können Sie BIOS-Informationen direkt aus der Registrierung abrufen:
Get-ItemProperty -Path HKLM:HARDWAREDESCRIPTIONSystemBIOS


Win32_BIOS ist eine generische Klasse, mit der grundlegende BIOS-Informationen auf jedem Windows-Gerät abgerufen werden können. Einige Hardwarehersteller bieten jedoch spezielle WMI-Klassen an, um direkt vom Windows-Betriebssystem aus auf das BIOS zuzugreifen (Sie müssen die nativen Treiber des Herstellers installieren).
So erhalten oder ändern Sie BIOS-Einstellungen mit dem Get-BIOS-Modul
Sie können ein separates Modul von PSGallery namens verwendenHolen Sie sich das BIOSum BIOS/UEFI-Einstellungen für Dell-, HP-, Lenovo- und Toshiba-Computer abzurufen.
Installieren Sie das Modul aus der PowerShell-Onlinegalerie (PowerShell-Module können offline installiert werden):
Install-Module GetBIOS


Um die BIOS-Einstellungen Ihres Computers anzuzeigen, führen Sie den folgenden Befehl aus:
Get-BIOS


Bei einigen BIOS-Versionen können Sie nicht nur den aktuellen Wert des BIOS-Parameters anzeigen, sondern auch dessen Beschreibung und die möglichen Werte:
Get-BIOS -ShowDescription
Es gibt auch ein Modul desselben Entwicklers, mit dem Sie die BIOS-Einstellungen auf Dell-, Lenovo- und HP-Geräten ändern können.
Install-Module SetBIOS
Lesen Sie auch:Ändern Sie das BIOS von Legacy auf UEFI, ohne Windows neu zu installieren
Sie müssen eine CSV-Datei im folgenden Format erstellen, um die BIOS-Einstellungen Ihres Geräts zu ändern: {Setting, Value}.


Um eine CSV-Datei mit den BIOS-Einstellungen anzuwenden, führen Sie den folgenden Befehl aus
Set-BIOS -Path "YourBIOSSettingsFile.csv"
Wenn das BIOS passwortgeschützt ist, fügen Sie hinzu-Passwordzur Option.
Listen Sie die BIOS-Einstellungen auf einem Lenovo-Gerät mit PowerShell auf
Aktuelle BIOS-Einstellungen werden in einer separaten WMI-Klasse gespeichertLenovoComputer. Sie können die verfügbaren BIOS-Optionen und ihre Werte auf dem Lenovo-Gerät auflisten:
Get-WmiObject -class Lenovo_BiosSetting -namespace rootwmi | select-object InstanceName, currentsetting


Überprüfen wir, ob das BIOS-Passwort auf Ihrem Lenovo-Computer festgelegt ist:
(gwmi -Class Lenovo_BiosPasswordSettings -Namespace rootwmi).PasswordState
Wenn der Befehl 0 zurückgegeben hat, ist das BIOS-Sicherheitskennwort nicht festgelegt.


Ändern Sie das BIOS-Administratorkennwort auf Ihrem Lenovo-Gerät:
(gwmi -Class Lenovo_SetBiosPassword -Namespace rootwmi).SetBiosPassword("pap,oldPassword,newPassword,ascii,us")
Sie können einige BIOS-Parameter auf Lenovo-Computern ändern. Aktivieren wir zum Beispiel WOL (Wake-On-LAN):
$getLenovoBIOS = gwmi -class Lenovo_SetBiosSetting -namespace rootwmi
$getLenovoBIOS.SetBiosSetting("WakeOnLAN,Enable")
$SaveLenovoBIOS = (gwmi -class Lenovo_SaveBiosSettings -namespace rootwmi)
$SaveLenovoBIOS.SaveBiosSettings()
Setzen Sie die BIOS-Einstellungen Ihres Lenovo-Geräts auf die Werkseinstellungen zurück:
$DefaultSettings = Get-WmiObject -Namespace rootwmi -Class Lenovo_LoadDefaultSettings
$DefaultSettings.LoadDefaultSettings("CurrentBIOSPassword,ascii,us")
PowerShell: BIOS-Einstellungen auf HP-Computern auflisten und ändern
Sie können die verfügbaren BIOS-Optionen, ihre Werte und verfügbaren Optionen auflistenHewlett PackardComputer/Laptops mit dem folgenden Befehl:
Get-WmiObject -Namespace root/hp/instrumentedBIOS -Class hp_biosEnumeration | select Name, value, possiblevalues –AutoSize
Auf HP-Computern können Sie PowerShell verwenden, um einige BIOS-Einstellungen zu ändern. Sie können beispielsweise die Möglichkeit deaktivieren, Ihren Computer von einem USB-Speichergerät zu starten.
$getHPBios = gwmi -class hp_biossettinginterface -Namespace "roothpinstrumentedbios"
$getHPBios.SetBIOSSetting('USB Storage Boot','Disable')
Wenn zum Ändern der BIOS-Einstellungen auf einem HP-Gerät ein Passwort erforderlich ist, können Sie dieses Skript verwenden:
$HPBIOSPassword = "<utf-16/>"+"Passw0rd!1"
$getHPBios = gwmi -class hp_biossettinginterface -Namespace "roothpinstrumentedbios"
$getHPBios.SetBIOSSetting(‘Network (PXE) Boot','Disable',$HPBIOSPassword)
Wenn der letzte Befehl „0“ zurückgegeben hat, wurde er erfolgreich ausgeführt. Sie können einen einfachen PowerShell-Handler verwenden:
$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
}
Wenn Sie die LAN/WLAN-Umschaltung im BIOS auf einem HP-Laptop aktivieren möchten, um die WLAN-Verbindung automatisch zu trennen, wenn eine Ethernet-Verbindung verfügbar ist, führen Sie diesen Befehl aus:
$getHPBios.SetBIOSSetting('LAN/WLAN Switching','Enable')
Sie können auch das installierenHP Client Management-Skriptbibliothek(CMSL)-Erweiterung auf Ihrem Hewlett-Packard-Gerät (https://www.hp.com/us-en/solutions/client-management-solutions/download.html). CMSL umfasst mehrere PowerShell-Module, mit denen Sie BIOS/UEFU-Einstellungen abrufen oder ändern, Firmware aktualisieren usw. können.
Exportieren Sie die aktuellen BIOS-Einstellungen in eine Textdatei:
Get-HPBIOSSettingsList | Out-File -FilePath ‘C:ProgramDataHPCMSLLogsCurrentBIOSSettings.txt’
Aktivieren Sie die Option WLAN Auto Switching in den HP BIOS-Einstellungen:
Set-HPBIOSSettingValue -Name "LAN/WLAN Auto Switching" -Value Enable -Password BiosPass000rd
Konfigurieren Sie die DELL-BIOS-Einstellungen mit PowerShell
Sie können die BIOS-Einstellungen anzeigen und verwaltenDELLComputer, die das verwendenDCIM-BIOSServiceWMI-Klasse oder die ModernerootdellomciKlasse (verfügbar nach der Installation von OMCI, Open Manage Client Instrumentation).
Um die Reihenfolge der Startgeräte im BIOS auf Dell-Computern anzuzeigen, führen Sie den folgenden Befehl aus:
Get-WmiObject -NameSpace rootdellomci Dell_BootDeviceSequence | sort bootorder | select BootDeviceName, BootOrder


Sie können Wake on LAN beispielsweise wie folgt im BIOS aktivieren:
(Get-WmiObject DCIM-BIOSService -namespace rootdcimsysman).SetBIOSAttributes($null,$null,"Wake-On-LAN","4")
Darüber hinaus können Sie für Dell-Computer die offizielle Version verwendenDellBIOSProviderPowerShell-Modul, das im Rahmen des Treiberinstallationsprozesses installiert wird, oder Sie können es manuell mit dem folgenden Befehl installieren:
Install-Module -Name DellBIOSProvider -Force
Mit diesem Modul können Sie beispielsweise die Startreihenfolge auf Ihrem Dell-Computer ermitteln:
Get-Item DellSmbios:BootSequenceBootsequence
Überprüfen Sie, ob das BIOS-Passwort festgelegt ist:
Get-Item -Path DellSmbios:SecurityIsAdminPasswordSet
Ändern Sie das BIOS-Sicherheitskennwort auf einem Dell-Gerät:
Set-Item -Path DellsmbiosSecurityAdminPassword –Value BadDellPa$$ –Password G00dDe11P@ss
Wir haben uns angeschaut, wie man mit PowerShell BIOS-Einstellungen auf Windows-Geräten abrufen und ändern kann. Dadurch können Sie die BIOS/UEFI-Einstellungen auf allen Ihren Computern vereinheitlichen (mithilfe von SCCM, Intune, MDT usw.).














