Lenovos BIOS PowerShell-Klassen

Lenovo BIOS settings und Powershell


Beginnend mit den T/W/X/L x30er-Serien bietet Lenovo WMI-Klassen, um BIOS/UEFI-Einstellungen direkt aus dem Betriebssystem heraus zu modifizieren. Die Klassen befinden sich im Namespace “root\wmi”.

BIOS-Einstellungen auslesen

Um eine Liste aller BIOS-Einstellungen incl. der aktuellen Werte auszulesen wird die WMI-Klasse “Lenovo_BiosSettings” verwendet. Zur besseren Lesbarkeit wird die Ausgabe leicht motifiziert und ”,” durch ”=” ersetzt.

Get-WmiObject -class Lenovo_BiosSetting -namespace root\wmi | ForEach-Object {if ($_.CurrentSetting -ne "") {Write-Host $_.CurrentSetting.replace(","," = ")}}

BIOS-Einstellungen setzen

Um BIOS-Einstellungen zu setzen bzw. zu modifizieren sind zwei Schritte nötig. Im ersten Schritt wird über die Klasse “Lenovo_SetBiosSettings” eine Einstellung verändert…

$Bios = Get-WmiObject -class Lenovo_SetBiosSetting –namespace root\wmi
$Bios.SetBiosSetting("WakeOnLAN,Enable")

… und im zweiten Schritt mit “Lenovo_SaveBiosSettings” gespeichert.

$Bios = Get-WmiObject -class Lenovo_SaveBiosSettings -namespace root\wmi
$Bios.SaveBiosSettings()

Ausnahmen

Eine Handvoll Security-Einstellungen können nicht über die WMI-Klassen modifiziert werden. Zum Beispiel die “Secure Rollback Prevention”.

Quellen