In the previous tip we showed how you can read and change BIOS settings for Lenovo computers. This was the code to disable WakeOnLan, for example:
#requires -RunAsAdministrator
$currentSetting = Get-WmiObject -Class Lenovo_SetBiosSetting -Namespace root\wmi $currentSetting.SetBiosSetting('WakeOnLAN,Disable').return $SaveSettings = Get-WmiObject -Class Lenovo_SaveBiosSettings -Namespace root\wmi $SaveSettings.SaveBiosSettings().return
If access to BIOS settings is safe-guarded by a password, this is how you would change settings with a BIOS password:
#requires -RunAsAdministrator $BIOSPassword = "topSecret" $currentSetting = Get-WmiObject -Class Lenovo_SetBiosSetting -Namespace root\wmi $currentSetting.SetBiosSetting("WakeOnLAN,Disable,$BIOSPassword,ascii,us").return $SaveSettings = Get-WmiObject -Class Lenovo_SaveBiosSettings -Namespace root\wmi $SaveSettings.SaveBiosSettings("$BIOSPassword,ascii,us").return
Note that the password only takes effect if the BIOS access is safe-guarded by a password. If there is no BIOS password and you submit a password, it will not get checked, and changes take effect.