Uso de PowerShell para ver y cambiar la configuración del BIOS
Puede usar PowerShell para ver o cambiar la configuración del BIOS en su computadora con Windows. Consideremos algunos ejemplos que puede usar para obtener o modificar algunas configuraciones de BIOS con PowerShell a través de las clases WMI (Instrumentación de administración de Windows) en las computadoras de proveedores populares: HP, Lenovo, Dell.
Puede ver los parámetros básicos del BIOS en su computadora usando el cmdlet Get-WmiObject de la clase Win32_BIOS:
Get-WmiObject -Class Win32_BIOS | Format-List *Este comando le permite ver la versión de su BIOS (SMBIOSBIOSVersion, BIOSVersion), el fabricante del hardware, el número de serie de la computadora, la fecha de lanzamiento y alguna otra información.
Puede enumerar solo algunos de estos parámetros del BIOS:
Get-WmiObject -Class Win32_BIOS | Select-Object Manufacturer, SMBIOSBIOSVersion
Puede usar la clase Win32_BIOS para ver información del BIOS en cualquier computadora que ejecute Windows. Sin embargo, algunos proveedores de hardware ofrecen clases especiales de WMI para acceder directamente al BIOS desde el sistema operativo Windows (los controladores nativos del fabricante de su hardware deben estar instalados en una computadora).
Gestión de la configuración del BIOS de Lenovo desde PowerShell
Puede obtener la lista de parámetros del BIOS y sus valores en computadoras Lenovo como esta:
Get-WmiObject -class Lenovo_BiosSetting -namespace root\wmiPara mostrar solo los nombres de la configuración del BIOS y sus valores actuales:
Get-WmiObject -class Lenovo_BiosSetting -namespace root\wmi | select-object InstanceName, currentsettingVerifiquemos si la contraseña para acceder al BIOS está configurada en su computadora Lenovo:
(gwmi -Class Lenovo_BiosPasswordSettings -Namespace root\wmi).PasswordStateSi el comando devolvió 0, entonces la contraseña para ingresar al BIOS no está configurada.
Puede cambiar algunos parámetros del BIOS en las computadoras Lenovo. Por ejemplo, habilitemos WOL (Wake-On-LAN):
$getLenovoBIOS = gwmi -class Lenovo_SetBiosSetting -namespace root\wmi
$getLenovoBIOS.SetBiosSetting("WakeOnLAN,Enable")
$SaveLenovoBIOS = (gwmi -class Lenovo_SaveBiosSettings -namespace root\wmi)
$SaveLenovoBIOS.SaveBiosSettings()Cambiar la configuración del BIOS desde PowerShell en computadoras Hewlett-Packard
Para obtener la configuración del BIOS, sus valores y las opciones disponibles en las computadoras HP, puede usar el siguiente comando:
Get-WmiObject -Namespace root/hp/instrumentedBIOS -Class hp_biosEnumeration | select Name, value, possiblevalues -AutoSizePuede cambiar algunas configuraciones de BIOS en computadoras HP desde PowerShell. Por ejemplo, desea deshabilitar el arranque de su computadora desde dispositivos USB.
$getHPBios = gwmi -class hp_biossettinginterface -Namespace "root\hp\instrumentedbios"
$getHPBios.SetBIOSSetting('USB Storage Boot','Disable')
Si se requiere una contraseña para cambiar la configuración del BIOS, puede usar este script:
$HPBIOSPassword = "<utf-16/>"+"Passw0rd!1"
$getHPBios = gwmi -class hp_biossettinginterface -Namespace "root\hp\instrumentedbios"
$getHPBios.SetBIOSSetting(‘Network (PXE) Boot','Disable',$HPBIOSPassword)Si el último comando ha devuelto "0", se ha ejecutado con éxito. Puede usar un controlador de PowerShell simple:
$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
}Si desea habilitar la conmutación LAN/WLAN en BIOS en una computadora portátil HP para desconectarse automáticamente de Wi-Fi cuando haya una conexión Ethernet disponible, ejecute este comando:
$getHPBios.SetBIOSSetting('LAN/WLAN Switching','Enable')Configuración de los ajustes del BIOS DELL con PowerShell
Para ver y administrar la configuración del BIOS en computadoras DELL, puede usar la clase WMI DCIM-BIOSService o la clase root\dellomci más moderna (disponible después de la instalación del paquete OMCI: Open Manage Client Instrumentation).
Para ver el orden de los dispositivos de inicio en el BIOS de las computadoras Dell, ejecute el siguiente comando:
Get-WmiObject -NameSpace root\dellomci Dell_BootDeviceSequence | sort bootorder | select BootDeviceName, BootOrderPor ejemplo, puede habilitar Wake on LAN en BIOS así:
(Get-WmiObject DCIM-BIOSService -namespace rootdcimsysman).SetBIOSAttributes($null,$null,"Wake-On-LAN","4")Además, Dell lanzó un módulo PowerShell independiente, DellBIOSProvider, que se instala junto con la instalación del controlador o puede instalarlo manualmente con este comando:
Install-Module -Name DellBIOSProvider -ForcePuede usar este módulo para ver la secuencia de inicio en una computadora Dell:
Get-ChildItem DellSmbios:\BootSequence\BootsequencePara cambiar una configuración de BIOS específica, use el cmdlet Set-Item. Por ejemplo, para cambiar la contraseña del BIOS:
Set-Item -Path Dellsmbios\Security\AdminPassword -Value BadDellPa$$ -Password G00dDe11P@ss
Con los métodos descritos anteriormente, puede crear un script de PowerShell para exportar la configuración actual del BIOS desde una computadora de referencia (por ejemplo, a un archivo CSV). Luego, puede usar PowerShell para implementar la misma configuración de BIOS en todas las computadoras de su empresa.



