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
- Lenovo Support: Lenovo BIOS Setup mit Windows Management Instrumentation
- ThinkPad-Forum: BIOS Einstellungen per WMI bzw. Powershell