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

Alle 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: