Verifique la preparación del hardware de Windows 11 con el script de PowerShell
En este artículo, veremos cómo utilizar el script oficial de PowerShell HardwareReadiness.ps1 de Microsoft para realizar una verificación masiva de compatibilidad de hardware de Windows 11 en las computadoras del dominio.
Este script verifica que la computadora cumpla con los siguientes requisitos mínimos para ejecutar Windows 11:
Procesador x64 compatible (lista completa de CPU compatibles)
4+ GB de RAM
Tamaño mínimo de disco duro de 64 GB
-
Dispositivo con UEFI y arranque seguro habilitados
Tarjeta de vídeo compatible con controladores DirectX 12 y WDDM 2.0
Módulo TPM 2.0
Para verificar manualmente que el hardware de una máquina específica sea compatible con los requisitos de Windows 11:
Descargue el script HardwareReadiness.ps1 (https://aka.ms/HWReadinessScript).
Abra una consola elevada de Windows PowerShell (el script usa el
Get-WMIObjectcmdlet, que no es compatible con versiones recientes de PowerShell Core)
Habilite la ejecución del script de PowerShell en la sesión actual:
Set-ExecutionPolicy -Scope Process RemoteSignedEjecute el script:
.\HardwareReadiness.ps1
El script ha devuelto el código 0. Esto significa que su computadora cumple con los requisitos de hardware para Windows 11 (
returncode:0 , resurnresult=CAPABLE).
{"returnCode":0,"returnReason":"","logging":"Storage: OSDiskSize=427GB. PASS; Memory: System_Memory=32GB. PASS; TPM: TPMVersion=2.0, 0, 1.38. PASS; Processor: {AddressWidth=64; MaxClockSpeed=3901; NumberOfLogicalCores=12; Manufacturer=AuthenticAMD; Caption=AMD64 Family 25 Model 80 Stepping 0; }. PASS; SecureBoot: Capable. PASS; ","returnResult":"CAPABLE"}Suponga que necesita realizar una verificación masiva de compatibilidad con Windows 11 en computadoras empresariales. En ese caso, puede ejecutar este script de PowerShell y recopilar información utilizando herramientas como SCCM, Intune o incluso WSUS (que también puede implementar software y scripts de terceros). Para casos simples, puede ejecutar este script de PowerShell a través de Políticas de grupo y guardar los resultados en las propiedades del objeto de la computadora en Active Directory.
El código del script original debe modificarse ligeramente.
Tenga en cuenta que el código de este archivo de script de PowerShell está firmado digitalmente por Microsoft. Sin embargo, el certificado de firma expiró en 2022.
Edite el archivo HardwareReadiness.ps1 y agregue el siguiente código al final, antes del #SIG # Begin Signature block:
$outObject = $outObject | ConvertTo-Json -Compress
$computer = $env:COMPUTERNAME
$ComputerSearcher = New-Object DirectoryServices.DirectorySearcher
# Specify your domain name
$ComputerSearcher.SearchRoot = "LDAP://DC=WOSHUB,DC=LOC"
$ComputerSearcher.Filter = "(&(objectCategory=Computer)(CN=$Computer))"
$computerObj = [ADSI]$ComputerSearcher.FindOne().Path
$computerObj.Put( "Info", $outObject )
$computerObj.SetInfo()Este código de PowerShell escribe información de compatibilidad de Windows 11 en el atributo de computadora Info en Active Directory.
Copie el archivo de script de PS1 al
\\a-d.loc\Netlogoncarpeta en el controlador de dominio.
Abra la consola de administración de políticas de grupo de dominio (
gpmc.msc), cree un nuevo GPO y vincúlelo a la unidad organizativa de la computadora.
Vaya a Configuración del equipo -> Políticas -> Configuración de Windows -> Scripts (Inicio/Apagado) -> Inicio -> pestaña Scripts de PowerShell y especifique la ruta UNC a HardwareReadiness. secuencia de comandos .ps1
Vaya a Configuración de la computadora -> Plantillas administrativas -> Sistema -> Política de grupo. Habilite la política Configurar retraso del script de inicio de sesión y establezca un retraso de ejecución del script de 1 minuto.
Además, habilite la opción Esperar siempre la red al iniciar e iniciar sesión en la computadora en Configuración de la computadora -> Plantillas de administración -> Sistema -> Iniciar sesión.
Lea más sobre cómo ejecutar scripts de inicio de sesión de PowerShell a través de GPO.
Reinicie la computadora del cliente. Inicie la consola ADUC (
dsa.msc) y abra las propiedades de la computadora. Vaya a la pestaña Editor de atributos y verifique que el parámetro Información ahora contenga los resultados de verificar la compatibilidad de su computadora con Windows 11. En la pestaña Editor de atributos, verifique que el parámetro Información ahora contenga los resultados de la verificación de compatibilidad con Windows 11 de su computadora.
Una vez que se haya ejecutado el script de inicio de sesión en todas las computadoras, podrá ver rápidamente información sobre las computadoras compatibles e incompatibles desde Active Directory usando el cmdlet Get-ADComputer:
Get-ADComputer -Filter {enabled -eq "true"} -properties *| Where-Object {$_.info -ne $null}Para obtener información más detallada sobre computadoras incompatibles y hardware específico que no cumple con los requisitos mínimos de Win 11, ejecute el siguiente script de PowerShell:
$Report = @()
$computers = Get-ADComputer -Filter {enabled -eq "true"} -properties *| Where-Object { $_.Info -match '"returnCode":1'}
foreach ($computer in $computers){
$jsonString =$computer.info
$object = $jsonString | ConvertFrom-Json
$returnReasonValues = $object.returnReason -split ', '
$CompInfo = [PSCustomObject]@{
"Computer" = $computer.name
"NonCompatibleItems" = $returnReasonValues
}
$Report += $CompInfo
}
$Report|fl
El cmdlet ConvertFrom-Json se utiliza para convertir datos del formato JSON.
Actualmente, puede ignorar la verificación de TPM, arranque seguro y otros requisitos de hardware durante una instalación limpia de Windows 11 utilizando varias opciones de registro en la clave LabConfig. Y con la clave AllowUpgradesWithUnsupportedTPMorCPU, puedes actualizar a Windows 11 incluso en computadoras con hardware no compatible.






