Extracción de Hardware Hash para Windows Autopilot

Guía operativa para equipos Lenovo — ThinkPad, ThinkBook, IdeaPad
SLIDER
Servicio de enrollment
v1.3.2-lenovo — mayo 2026
slider.cloud

1. Contexto

Esta guía cubre la extracción del hardware hash de equipos Lenovo nuevos, paso necesario para enrolarlos en Microsoft Windows Autopilot. El hash es una huella digital única del equipo que Microsoft Intune usa para reconocerlo y aplicarle su configuración automáticamente cuando el usuario final lo encienda por primera vez.

El procedimiento es el mismo para cualquier equipo Lenovo sin importar qué traiga de fábrica (Windows 11 Pro OEM, FreeDOS, Ubuntu, o nada). Booteamos desde un USB con el instalador de Windows 11, abrimos un cmd, corremos el script y apagamos. Una sola receta para todo el lote.

El equipo queda intacto No se instala nada, no se configura nada. Solo abrimos un terminal, sacamos el hash, y apagamos. El disco no se toca. Cuando el usuario final encienda el equipo, arranca normal y Autopilot lo toma desde cero.

2. Antes de empezar — qué necesitás

3. Particularidades de Lenovo (leer una vez antes de empezar)

Las Lenovo tienen un par de cosas distintas a otras marcas que vale la pena saber antes:

3.1 Las teclas F-keys vienen "invertidas" por default (Fn lock)

En la mayoría de Lenovo modernas, las teclas F1 a F12 por default ejecutan funciones especiales (volumen, brillo, etc.) en lugar de F1-F12 reales. Esto rompe el atajo Shift+F10.

Si Shift+F10 no abre el cmd, usá Fn+Shift+F10 Probá las dos. Una de las dos siempre funciona. También podés activar el "Fn Lock" presionando Fn+Esc una vez — queda fijo y las F-keys vuelven a ser F-keys normales.

3.2 El botón Novo (atajo Lenovo para boot menu y BIOS)

Lenovo agrega un botón propio llamado Novo (símbolo: flecha curva pequeña ) que abre un menú especial sin importar qué F-key use el modelo. Es la forma más fácil de entrar al boot menu o al BIOS.

En notebooks (ThinkPad / IdeaPad / ThinkBook)

┌─────────────────────────────┐ │ ┌────────────────────────┐ │ │ │ LENOVO LCD │ │ │ └────────────────────────┘ │ │ │ │ [TECLADO COMPLETO] │ │ │ │ ←───── lateral izquierdo o │ │ al lado del power │ │ botón pequeño ↶ │ └─────────────────────────────┘

Está en el lateral izquierdo de la notebook (cerca de la bisagra) o al lado del botón de power. Es pequeño, hundido, hay que presionarlo con la punta de un clip o un lápiz. Algunas IdeaPad muy nuevas lo reemplazan por Fn+F2.

Cómo usarlo

  1. Equipo apagado.
  2. Apretar el botón Novo con un clip (1-2 segundos).
  3. El equipo arranca y muestra el Novo Button Menu con 4 opciones:
    • Normal Startup
    • BIOS Setup ← para configurar TPM
    • Boot Menu ← para bootear el USB de Win11
    • System Recovery
  4. Flechas + Enter para elegir.

3.3 Teclas alternativas según modelo

Línea LenovoBoot menuBIOS Setup
ThinkPad (T, X, L, E)F12 al encenderF1 al encender
ThinkBookF12 al encenderF2 al encender
IdeaPadF12 o Fn+F12F2 o Fn+F2
Cualquier Lenovo (si dudás)Botón Novo (sección 3.2) — abre menú con ambas opciones

3.4 TPM 2.0 — verificar si un hash falla

Autopilot necesita TPM 2.0 activado. Las Lenovo nuevas lo traen activado de fábrica, pero si un equipo falla la extracción de hash, verificalo:

  1. Entrar al BIOS (botón Novo → BIOS Setup, o F1 en ThinkPad / F2 en ThinkBook/IdeaPad).
  2. Ir a SecuritySecurity Chip.
  3. Verificar que esté en Active o Enabled (TPM 2.0).
  4. F10 para guardar y salir.

4. Preparación del USB (una sola vez)

Un solo USB de 8 GB o más cumple las dos funciones: bootea el instalador de Windows 11 (entorno WinPE con cmd) y lleva el script + el CSV de hashes. La preparación se hace una sola vez en una PC con Windows e internet, y después el mismo USB sirve para todo el lote.

4.1 Armar el USB booteable con Windows 11

Este paso genera el USB con el instalador. No se instala nada en ningún equipo — el instalador se usa solo como un "Windows portátil" en RAM (WinPE) para acceder a un cmd.

  1. Desde una PC con Windows con internet, ir a microsoft.com/software-download/windows11.
  2. Descargar "Crear medios de instalación de Windows 11".
  3. Ejecutarla, seleccionar el USB destino (mínimo 8 GB — se borra entero).
  4. Esperar 20-40 minutos a que termine de armar el USB booteable.
No se instala Windows en el equipo Solo usamos el instalador para tener acceso a un cmd con drivers. Cancelamos antes de tocar el disco. El equipo Lenovo queda exactamente como vino de fábrica (Win11 OEM, FreeDOS, Ubuntu o lo que sea).

4.2 Copiar el script y el CSV-builder a la raíz del mismo USB

Una vez armado el USB booteable, agregar dos archivos en la raíz — al lado de setup.exe y la carpeta sources/ del instalador. Agregar archivos a la raíz no rompe el booteo: WinPE ignora lo que no necesita.

  1. Bajar extraer-hash.cmd y copiarlo a la raíz del USB.

    Descargar extraer-hash.cmd

  2. Conseguir Get-WindowsAutopilotInfo.ps1 y copiarlo a la raíz del USB. Dos opciones:
    • Opción A — descarga directa (más simple):

      Descargar Get-WindowsAutopilotInfo.ps1

      Versión testeada por nosotros, alineada con esta guía.
    • Opción B — desde PowerShell Gallery (oficial Microsoft): abrir PowerShell en la PC de preparación y correr:
      Save-Script -Name Get-WindowsAutopilotInfo -Path "E:\"
      Reemplazar E:\ por la letra del USB. Si Save-Script no está disponible, primero instalar el módulo: Install-Module PowerShellGet -Force. Si el .ps1 queda dentro de una subcarpeta (por ejemplo E:\Get-WindowsAutopilotInfo\), moverlo a la raíz.
  3. Verificar que en la raíz del USB queden los dos archivos visibles junto a los del instalador:
    E:\extraer-hash.cmd
    E:\Get-WindowsAutopilotInfo.ps1
    E:\setup.exe              (del instalador)
    E:\sources\               (del instalador)
    ... etc
El mismo USB sirve para todo el lote No hace falta borrar nada entre equipos. La primera ejecución del script crea la carpeta HASHES\ en el USB y agrega ahí cada hash al autopilot.csv en modo append.
Por qué el .ps1 va precargado en el USB Para evitar que cada equipo tenga que bajar el script desde PowerShell Gallery durante la extracción. Si por algún motivo el .ps1 no está en el USB, extraer-hash.cmd intenta bajarlo desde PSGallery como fallback — pero eso requiere internet en campo y agrega un minuto por equipo.

5. Procedimiento por equipo repetir en cada Lenovo

Mismos pasos para todos los equipos del lote, sin importar qué sistema operativo traigan.

  1. (Opcional, recomendado como red de seguridad) Conectá el cable ethernet (o adaptador USB-ethernet en ThinkBook/IdeaPad delgadas). Con el .ps1 precargado en el USB no se usa, pero queda listo por si hay que caer al fallback.
  2. Enchufá el USB preparado en la sección 4.
  3. Equipo apagado. Apretar el botón Novo (sección 3.2) con un clip → elegir Boot Menu. Alternativa: encender y apretar F12 apenas se prenda.
  4. En el boot menu, elegir el USB (aparece como "USB HDD: SanDisk..." o similar, en modo UEFI).
  5. Esperá unos segundos. Aparece la pantalla del instalador de Windows con selección de idioma.
  6. Presioná Shift+F10. Si no abre nada, probá Fn+Shift+F10 (ver sección 3.1). Abre un cmd.
  7. Listá las unidades visibles para saber qué letra tipear al invocar el script:
    wmic logicaldisk get name,volumename
    En WinPE vas a ver dos:
    • X: — RAM disk temporal del instalador (archivos del setup montados en RAM). No es el USB.
    • Otra letra (típicamente D: o E:) — el USB físico. Se reconoce por el volume name que le hayas puesto, y porque en su raíz están extraer-hash.cmd y Get-WindowsAutopilotInfo.ps1.

    Curiosidad: el .cmd por dentro vuelve a recorrer las letras D a N para autoubicarse cuando arranca. El wmic sirve solo para que vos sepas qué letra tipear en el paso siguiente.

  8. Ejecutá el script desde la letra del USB físico (en este ejemplo D: — reemplazar con la letra real):
    D:\extraer-hash.cmd
  9. Esperá 1 a 2 minutos. El script:
    • Detecta si Get-WindowsAutopilotInfo.ps1 está en la raíz del USB (debería estar — ver sección 4.2). Si está, lo ejecuta local: sin descarga, sin red en este paso.
    • Si no lo encuentra, cae al fallback: lo baja de PowerShell Gallery (acá es donde necesita el ethernet).
    • Extrae el hash del TPM y lo agrega al CSV del USB (acumulativo — no sobreescribe).
  10. Cuando diga OK — Hash extraído y guardado en el USB, apagá:
    wpeutil shutdown
    En el entorno del instalador, el shutdown común no funciona; usá wpeutil shutdown.
  11. Tildá el serial en la planilla, desenchufá el USB, pasá al siguiente equipo.
No tocar la opción "Instalar ahora" Solo necesitamos el cmd (Shift+F10) desde la primera pantalla del instalador. Si por error apretás "Instalar", cancelá con la flecha hacia atrás o reiniciá — mientras no llegues a la pantalla de "Aceptar términos" y "Particionar disco", no se toca nada del equipo.
Si el USB no aparece en el boot menu En las Lenovo con Secure Boot estricto puede no listar USBs no firmados. Entrá al BIOS (botón Novo → BIOS Setup), buscá Security → Secure Boot y poné Disabled temporalmente. Después de extraer todos los hashes, volvé a Enabled.
Tiempo por equipo ~3 a 4 minutos por equipo. El boot del USB tarda. Para lotes grandes considerá tener 2 USBs preparados y procesar en paralelo con otro técnico (cada USB acumula su propio CSV; al final se concatenan).

6. Después de procesar el lote: subir el CSV a Intune

  1. Conectá el USB a una PC con internet.
  2. Abrí HASHES\autopilot.csv con Bloc de notas. No usar Excel: rompe el formato del hash (Excel lo trata como número, agrega comillas, le saca padding).
  3. Validar:
    • 1 línea de cabecera + 1 fila por equipo procesado.
    • Cada fila: Device Serial Number, Windows Product ID, Hardware Hash.
    • Si faltan filas, comparar seriales del CSV con la planilla para detectar cuál falta.
  4. Entrá al Centro de administración de Microsoft Intune.
  5. Devices → Windows → Windows enrollment → Windows AutopilotDevices.
  6. Clic en Import, seleccionar el autopilot.csv.
  7. Esperar — para lotes grandes puede tardar 10-15 minutos.
  8. Sync en la barra superior, después Refresh hasta ver todos los dispositivos listados.
Notificación de error al importar CSV
Si el CSV tiene errores, Intune avisa indicando qué línea falló. Imagen: Microsoft Learn.
Detalles del error de importación
Detalle expandido del error. El código indica si está duplicado, registrado en otro tenant, o si el hash está corrupto. Imagen: Microsoft Learn.

7. Plan B — Fallback OOBE solo si falla el USB WinPE

Este apartado no es el flujo recomendado. Existe para cubrir un caso puntual: el USB de WinPE no tiene PowerShell incluido y en el cmd del instalador aparece el error:

"powershell.exe" no se reconoce como un comando interno o externo

El WinPE base no trae PowerShell — hay que agregarlo con DISM en la armada del USB. Mientras tanto, si tenés el lote a procesar y no podés rearmar el USB en el momento, podés sacar el hash desde el Windows preinstalado de fábrica, durante la pantalla OOBE (la primera pantalla cuando encendés un equipo nuevo, "Comencemos por la región").

Limitaciones de este flujo

7.1 Procedimiento OOBE por equipo

  1. Encendé el equipo. Esperá la pantalla "Comencemos por la región" (primera pantalla de OOBE).
  2. Enchufá el USB (necesitamos el Get-WindowsAutopilotInfo.ps1 que ya está en su raíz).
  3. Presioná Shift+F10 (o Fn+Shift+F10 en Lenovo — ver sección 3.1). Abre un cmd.

    Si no abre nada y probaste ambas combinaciones: el equipo es Win11 24H2+ con el bloqueo activo. Este flujo no aplica para ese equipo, hay que rearmar el USB WinPE con PowerShell.

  4. Identificá la letra del USB:
    wmic logicaldisk get name,volumename

    A diferencia de WinPE, acá no hay X:. Las letras son normales (C: es el disco interno, otra letra — típicamente D: o E: — es el USB).

  5. Crear la carpeta de hashes en el USB (si no existe) y correr el script (reemplazar D: con la letra real del USB):
    if not exist D:\HASHES mkdir D:\HASHES
    cd /d D:\HASHES
    powershell -ExecutionPolicy Bypass -File D:\Get-WindowsAutopilotInfo.ps1 -OutputFile D:\HASHES\autopilot.csv -Append
    El parámetro -Append es clave: hace que el CSV vaya acumulando filas por cada equipo, igual que el flujo WinPE.
  6. Esperá 30 a 60 segundos. Cuando vuelve el prompt sin error, el hash quedó guardado.
  7. Apagá inmediatamente:
    shutdown /s /t 0
    No cerrar el cmd y volver a OOBE. No tocar la pantalla. Directo a apagado.
  8. Tildá el serial en la planilla, desenchufá el USB, pasá al siguiente equipo.
Por qué es crítico no avanzar en OOBE Si el técnico clickea "Siguiente" en la pantalla de región/idioma y empieza a configurar el equipo, se crea un perfil de usuario local. Cuando el cliente final reciba ese equipo, Autopilot puede no enrolar bien (porque el equipo ya tiene un usuario activo) y queda con basura en el perfil. La recuperación es resetear desde Windows Recovery, que toma 20-30 minutos por equipo. Mucho más tiempo del que se gana evitando rearmar el USB.

7.2 Cuándo elegir OOBE vs rearmar el USB WinPE

SituaciónMejor opción
Lote chico (≤10 equipos), todos con Win11 preinstalado, hay que entregar hoy OOBE como excepción, con cuidado del paso de apagado
Lote mediano/grande, o el lote incluye FreeDOS/Ubuntu Armar el USB WinPE con PowerShell (ver sección 7.3)
Técnico con experiencia limitada, sin supervisión Rearmar el USB WinPE — el flujo OOBE tiene riesgo si se avanza por error
Equipos Win11 24H2+ con Shift+F10 bloqueado Rearmar el USB WinPE (única opción)

7.3 Cómo armar el USB WinPE con PowerShell incluido

Esto se hace una sola vez, en una máquina con Windows ADK + WinPE add-on instalados. Después el USB sirve para todo el lote y no hay que tocarlo más. El técnico de campo no hace nada de esto — es trabajo previo del responsable del paquete.

  1. Instalar (si no está) el Windows ADK + el WinPE add-on (descarga separada en la misma página).
  2. Abrir "Deployment and Imaging Tools Environment" del menú inicio como Administrador.
  3. Ejecutar este bloque (en PowerShell elevado):
    copype amd64 C:\WinPE_amd64
    
    $MountDir = "C:\WinPE_amd64\mount"
    Dism /Mount-Image /ImageFile:"C:\WinPE_amd64\media\sources\boot.wim" /Index:1 /MountDir:$MountDir
    
    $PkgPath = "C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs"
    
    # Orden importante — primero WMI, después .NET, después Scripting, después PowerShell
    Dism /Add-Package /Image:$MountDir /PackagePath:"$PkgPath\WinPE-WMI.cab"
    Dism /Add-Package /Image:$MountDir /PackagePath:"$PkgPath\en-us\WinPE-WMI_en-us.cab"
    Dism /Add-Package /Image:$MountDir /PackagePath:"$PkgPath\WinPE-NetFX.cab"
    Dism /Add-Package /Image:$MountDir /PackagePath:"$PkgPath\en-us\WinPE-NetFX_en-us.cab"
    Dism /Add-Package /Image:$MountDir /PackagePath:"$PkgPath\WinPE-Scripting.cab"
    Dism /Add-Package /Image:$MountDir /PackagePath:"$PkgPath\en-us\WinPE-Scripting_en-us.cab"
    Dism /Add-Package /Image:$MountDir /PackagePath:"$PkgPath\WinPE-PowerShell.cab"
    Dism /Add-Package /Image:$MountDir /PackagePath:"$PkgPath\en-us\WinPE-PowerShell_en-us.cab"
    Dism /Add-Package /Image:$MountDir /PackagePath:"$PkgPath\WinPE-StorageWMI.cab"
    Dism /Add-Package /Image:$MountDir /PackagePath:"$PkgPath\en-us\WinPE-StorageWMI_en-us.cab"
    Dism /Add-Package /Image:$MountDir /PackagePath:"$PkgPath\WinPE-DismCmdlets.cab"
    Dism /Add-Package /Image:$MountDir /PackagePath:"$PkgPath\en-us\WinPE-DismCmdlets_en-us.cab"
    
    Dism /Unmount-Image /MountDir:$MountDir /Commit
    
    # Reemplazar D: por la letra real del USB
    MakeWinPEMedia /UFD C:\WinPE_amd64 D:

    Si solo querés un WinPE pelado (sin PowerShell), alcanza con copype amd64 C:\WinPE_amd64 y MakeWinPEMedia /UFD C:\WinPE_amd64 D:. Pero el script Get-WindowsAutopilotInfo.ps1 necesita PowerShell, así que para este flujo hay que inyectar los .cab sí o sí.

  4. Volver a copiar extraer-hash.cmd y Get-WindowsAutopilotInfo.ps1 a la raíz del USB (el armado los borra). Ver sección 4.2.
Verificación rápida Booteá un equipo cualquiera con el USB armado, Shift+F10, y tipeá powershell -Command "Get-Host". Si responde con la versión de PowerShell, el armado funcionó. Si vuelve a decir "no se reconoce", revisar que los .cab se aplicaron sin error en el paso de DISM.

8. Troubleshooting Lenovo

ProblemaSolución
Shift+F10 no abre cmd Las F-keys de Lenovo están "invertidas". Probar Fn+Shift+F10. O activar Fn Lock con Fn+Esc (queda fijo).
El equipo Lenovo no bootea del USB BIOS → Security → Secure Boot → Disabled (temporalmente). O usar el botón Novo → Boot Menu, que ignora Secure Boot.
No encuentro el botón Novo En ThinkPad está en el lateral izquierdo cerca de la bisagra. En IdeaPad nuevas, lo reemplazaron por Fn+F2. Si no aparece, usá la tabla de la sección 3.3.
"powershell.exe" no se reconoce como un comando interno o externo El USB de WinPE no incluye PowerShell. Solución definitiva: armar el USB con los pasos de la sección 7.3. Solución de emergencia (solo equipos con Win11 preinstalado): usar el flujo OOBE de la sección 7.1.
Script dice "No se detectó el USB" El archivo extraer-hash.cmd tiene que estar en la raíz del USB físico (no en el RAM disk X:). Verificar que en el USB queden visibles tanto extraer-hash.cmd como Get-WindowsAutopilotInfo.ps1. Probá otro puerto USB.
Error de NuGet / Install-Script falla Significa que el .cmd cayó al fallback de internet. La causa más probable es que Get-WindowsAutopilotInfo.ps1 no está en la raíz del USB — el camino offline lo evita por completo. Verificar que el .ps1 esté visible en la raíz (no dentro de una subcarpeta). Si efectivamente estás usando el fallback a propósito, verificar internet con ping google.com — sin red el fallback no funciona.
El instalador arranca pero no aparece selección de idioma (pantalla negra larga) El USB puede haber booteado en modo Legacy. Apagar, volver a entrar al boot menu y elegir explícitamente la opción que dice "UEFI: ..." del USB.
El CSV tiene menos filas que equipos procesados Algún equipo falló. Comparar seriales del CSV vs planilla impresa para identificar cuál falta y reprocesarlo.
Intune dice ZtdDeviceAssignedToAnotherTenant Ese Lenovo ya está registrado en otro tenant Autopilot. Hay que pedirle al tenant anterior que lo libere — no es técnico, es comercial.
Hash corrupto / error 400 al importar Abrí el CSV con Notepad, agregá un = al final del hash de la fila problemática. Ver Microsoft Learn Troubleshooting FAQ.
TPM no detectado / hash inválido para ese equipo Botón Novo → BIOS Setup → Security → Security Chip → Active. F10 guardar. Reintentá.

9. Anexo — Checklist imprimible para campo

Imprimir esta página suelta y llevarla al sitio donde se procesan los equipos. Cubre el procedimiento completo en un vistazo.

Antes de empezar

Por cada equipo Lenovo

Al final del lote