Puede usar PowerShell para ver o cambiar la configuración de BIOS/UEFI en una computadora con Windows. En este artículo, veremos cómo usar Windows PowerShell para obtener o cambiar la configuración del BIOS de la computadora en computadoras normales y en dispositivos de marcas populares (HP, Lenovo, Dell y Toshiba).
Contenido:
- Verifique la versión de BIOS/UEFI con PowerShell
- Cómo obtener o cambiar la configuración del BIOS con el módulo Get-BIOS
- Enumere la configuración del BIOS en el dispositivo Lenovo con PowerShell
- PowerShell: enumerar y cambiar la configuración del BIOS en computadoras HP
- Configurar los ajustes del BIOS de DELL con PowerShell
Verifique la versión de BIOS/UEFI con PowerShell
La clase WMIWin32_BIOSproporciona información básica sobre el BIOS de la computadora (UEFI). Puedes usar elObtener-WmiObjectcmdlet para obtener información del BIOS de WMI (Instrumental de administración de Windows).
Get-WmiObject -Class Win32_BIOS

De forma predeterminada, el comando devuelve información sobre la versión del BIOS (SMBIOSBIOSVersion), el fabricante, el número de serie y el modelo de computadora.
Debe usar clases CIM en lugar de clases WMI en las versiones más recientes de PowerShell Core 7.x. En este caso, el comando anterior debería verse así:
Get-CimInstance -Class Win32_BIOS
Para ver la lista completa de parámetros del BIOS que están disponibles en elWin32_BIOSClase WMI, use el comando:
Get-WmiObject -Class Win32_BIOS | Format-List *


Puede ver solo la configuración del BIOS que le interesa. Por ejemplo, la versión del BIOS, el número de serie de la computadora, el fabricante y la fecha de lanzamiento:
Get-WmiObject -Class Win32_BIOS | Select SMBIOSBIOSVersion, Manufacturer, SerialNumber, ReleaseDate
También puede obtener información del BIOS desde una computadora remota:
Get-WmiObject -Class Win32_BIOS -ComputerName MUN-WKS41
La información del BIOS de la computadora se almacena en el registro de Windows. Puede obtener información del BIOS directamente desde el registro mediante PowerShell:
Get-ItemProperty -Path HKLM:HARDWAREDESCRIPTIONSystemBIOS


Win32_BIOS es una clase genérica que se puede utilizar para obtener información básica del BIOS en cualquier dispositivo Windows. Sin embargo, algunos proveedores de hardware ofrecen clases WMI especiales para acceder al BIOS directamente desde el sistema operativo Windows (deberá instalar los controladores nativos del fabricante).
Cómo obtener o cambiar la configuración del BIOS con el módulo Get-BIOS
Puede utilizar un módulo independiente de PSGallery llamadoObtener BIOSpara obtener la configuración de BIOS/UEFI para computadoras Dell, HP, Lenovo y Toshiba.
Instale el módulo desde la galería en línea de PowerShell (los módulos de PowerShell se pueden instalar sin conexión):
Install-Module GetBIOS


Para ver la configuración del BIOS de su computadora, ejecute el comando:
Get-BIOS


Con algunas versiones del BIOS, puede mostrar no solo el valor actual del parámetro del BIOS sino también su descripción y los valores posibles:
Get-BIOS -ShowDescription
También hay un módulo del mismo desarrollador que le permite cambiar la configuración del BIOS en máquinas Dell, Lenovo y HP.
Install-Module SetBIOS
Lea también:Cambie el BIOS de Legacy a UEFI sin reinstalar Windows
Debe crear un archivo CSV en el siguiente formato para cambiar la configuración del BIOS de su dispositivo: {Configuración, Valor}.


Para aplicar un archivo CSV que contiene la configuración del BIOS, ejecute el siguiente comando
Set-BIOS -Path "YourBIOSSettingsFile.csv"
Si el BIOS está protegido con contraseña, agregue-Passworda la opción.
Enumere la configuración del BIOS en el dispositivo Lenovo con PowerShell
La configuración actual del BIOS se almacena en una clase WMI separada enlenovocomputadoras. Puede enumerar las opciones de BIOS disponibles y sus valores en el dispositivo Lenovo:
Get-WmiObject -class Lenovo_BiosSetting -namespace rootwmi | select-object InstanceName, currentsetting


Verifiquemos si la contraseña del BIOS está configurada en su computadora Lenovo:
(gwmi -Class Lenovo_BiosPasswordSettings -Namespace rootwmi).PasswordState
Si el comando devolvió 0, entonces la contraseña de seguridad del BIOS no está configurada.


Cambie la contraseña de administrador del BIOS en su dispositivo Lenovo:
(gwmi -Class Lenovo_SetBiosPassword -Namespace rootwmi).SetBiosPassword("pap,oldPassword,newPassword,ascii,us")
Puede cambiar algunos parámetros del BIOS en las computadoras Lenovo. Por ejemplo, habilitemos WOL (Wake-On-LAN):
$getLenovoBIOS = gwmi -class Lenovo_SetBiosSetting -namespace rootwmi
$getLenovoBIOS.SetBiosSetting("WakeOnLAN,Enable")
$SaveLenovoBIOS = (gwmi -class Lenovo_SaveBiosSettings -namespace rootwmi)
$SaveLenovoBIOS.SaveBiosSettings()
Restablezca la configuración del BIOS de su dispositivo Lenovo a los valores predeterminados de fábrica:
$DefaultSettings = Get-WmiObject -Namespace rootwmi -Class Lenovo_LoadDefaultSettings
$DefaultSettings.LoadDefaultSettings("CurrentBIOSPassword,ascii,us")
PowerShell: enumerar y cambiar la configuración del BIOS en computadoras HP
Puede enumerar las opciones de BIOS disponibles, sus valores y las opciones disponibles enHewlett-Packardcomputadoras/portátiles usando el siguiente comando:
Get-WmiObject -Namespace root/hp/instrumentedBIOS -Class hp_biosEnumeration | select Name, value, possiblevalues –AutoSize
En las computadoras HP, puede usar PowerShell para cambiar algunas configuraciones del BIOS. Por ejemplo, puede desactivar la capacidad de iniciar su computadora desde un dispositivo de almacenamiento USB.
$getHPBios = gwmi -class hp_biossettinginterface -Namespace "roothpinstrumentedbios"
$getHPBios.SetBIOSSetting('USB Storage Boot','Disable')
Si se requiere una contraseña para cambiar la configuración del BIOS en un dispositivo HP, puede usar este script:
$HPBIOSPassword = "<utf-16/>"+"Passw0rd!1"
$getHPBios = gwmi -class hp_biossettinginterface -Namespace "roothpinstrumentedbios"
$getHPBios.SetBIOSSetting(‘Network (PXE) Boot','Disable',$HPBIOSPassword)
Si el último comando devolvió “0”, se ejecutó exitosamente. Puede utilizar 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')
También puedes instalar elBiblioteca de scripts de administración de clientes de HP(CMSL) en su dispositivo Hewlett-Packard (https://www.hp.com/us-en/solutions/client-management-solutions/download.html). CMSL incluye varios módulos de PowerShell que le permiten obtener o cambiar la configuración de BIOS/UEFU, actualizar el firmware, etc.
Exporte la configuración actual del BIOS a un archivo de texto:
Get-HPBIOSSettingsList | Out-File -FilePath ‘C:ProgramDataHPCMSLLogsCurrentBIOSSettings.txt’
Habilite la opción de cambio automático de WLAN en la configuración del BIOS de HP:
Set-HPBIOSSettingValue -Name "LAN/WLAN Auto Switching" -Value Enable -Password BiosPass000rd
Configurar los ajustes del BIOS de DELL con PowerShell
Puede ver y administrar la configuración del BIOS enDELLcomputadoras usando elServicio DCIM-BIOSClase WMI o la moderna.raízdellomciclase (disponible después de instalar OMCI, Open Manage Client Instrumentation).
Para ver el orden de los dispositivos de arranque en el BIOS de las computadoras Dell, ejecute el siguiente comando:
Get-WmiObject -NameSpace rootdellomci Dell_BootDeviceSequence | sort bootorder | select BootDeviceName, BootOrder


Por ejemplo, puedes habilitar Wake on LAN en el BIOS de esta manera:
(Get-WmiObject DCIM-BIOSService -namespace rootdcimsysman).SetBIOSAttributes($null,$null,"Wake-On-LAN","4")
Además, para computadoras Dell, puede utilizar el sitio web oficial.Proveedor DellBIOSMódulo PowerShell, que se instala como parte del proceso de instalación del controlador, o puede instalarlo manualmente con el comando:
Install-Module -Name DellBIOSProvider -Force
Por ejemplo, puede utilizar este módulo para obtener el orden de inicio en su computadora Dell:
Get-Item DellSmbios:BootSequenceBootsequence
Compruebe que la contraseña del BIOS esté configurada:
Get-Item -Path DellSmbios:SecurityIsAdminPasswordSet
Cambie la contraseña de seguridad del BIOS en un dispositivo Dell:
Set-Item -Path DellsmbiosSecurityAdminPassword –Value BadDellPa$$ –Password G00dDe11P@ss
Vimos cómo usar PowerShell para obtener y cambiar la configuración del BIOS en dispositivos Windows. Esto le permite unificar la configuración de BIOS/UEFI en todas sus computadoras (usando SCCM, Intune, MDT, etc.).















