Búsqueda de sitios web

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\wmi

Para 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, currentsetting

Verifiquemos si la contraseña para acceder al BIOS está configurada en su computadora Lenovo:

(gwmi -Class Lenovo_BiosPasswordSettings -Namespace root\wmi).PasswordState

Si 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 -AutoSize

Puede 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, BootOrder

Por 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 -Force

Puede usar este módulo para ver la secuencia de inicio en una computadora Dell:

Get-ChildItem DellSmbios:\BootSequence\Bootsequence

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

Artículos relacionados