Creación de un Windows PE con PowerShell y controladores personalizados (con PowerShell) - sevioptero/Windows_info GitHub Wiki

Creación de un Windows PE con PowerShell y controladores personalizados (con PowerShell)

Contenido


Creación de un Windows PE

  1. Descargar e instalar el Windows Assessment and Deployment Kit (ADK) para Windows 10 y el Windows PE add-on for the ADK.

  2. Iniciamos como Administrador el programa Deployment and Imaging Tools o Entorno de herramientas de implementación y creación de imágenes.

  3. Creamos el conjunto de archivos de Windows PE:

    • WinPE es la carpeta en la que se van a copiar los archivos de Windows PE.
    CopyPE AMD64 C:\WinPE
    
  4. Si queremos, podemos comprobar la imagen de inicio desde una consola de PowerShell:

    Get-WindowsImage -ImagePath "C:\WinPE\media\sources\boot.wim"
    
  5. También podemos ver más información, como la versión:

    Dism /Get-WimInfo /WimFile:C:\WinPE\media\sources\boot.wim /index:1
    

Cómo aplicar actualizaciones a la imagen de Windows

Primero se aplica la última SSU y después la última LCU (Latest cumulative Update). Después de aplicar la SSU hay que desmontar y aplicar los cambios en la imagen.

Podemos ver cuál es la última actualización de Windows en el Historial de actualizaciones de Windows 10, versión 2004, donde también se indicará si se debe instalar una SSU previamente como prerequisito.

  1. Montamos la imagen de inicio:
    Mount-WindowsImage -ImagePath "C:\WinPE\media\sources\boot.wim" -Path "C:\WinPE\mount" -Index 1
    
  2. Aplicamos la última SSU:
    Add-WindowsPackage -Path C:\WinPE\mount\ -PackagePath C:\WinPE-Res\Updates\SSU\windows10.0-kb4598481-x64_749fe79fd2e31b145de37c2f9ebf4f711d174dc2.msu
    
  3. Desmontamos confirmando los cambios.
    Dismount-WindowsImage -Path "C:\WinPE\mount" -Save
    
  4. Volvemos a montar la imagen:
    Mount-WindowsImage -ImagePath "C:\WinPE\media\sources\boot.wim" -Path "C:\WinPE\mount" -Index 1
    
  5. Aplicamos una LCU prerequisito de la última LCU:
    Add-WindowsPackage -Path C:\WinPE\mount\ -PackagePath C:\WinPE-Res\Updates\LCU\windows10.0-kb5003173-x64_4e3b4345ad6e3bf44183d6f25879a0c5ca1b7ef9.msu
    
  6. Aplicamos la última LCU:
    Add-WindowsPackage -Path C:\WinPE\mount\ -PackagePath C:\WinPE-Res\Updates\LCU\windows10.0-kb5004476-x64_d921e030a0749cb41551bbfa9b53c35edbb1e763.msu
    
  7. Desmontamos confirmando los cambios.
    Dismount-WindowsImage -Path "C:\WinPE\mount" -Save
    

Ya tenemos actualizada la imagen de inicio de Windows a la última versión.

Cómo añadir controladores de dispositivo adicionales

  1. Montamos la imagen de inicio:

    Mount-WindowsImage -ImagePath "C:\WinPE\media\sources\boot.wim" -Path "C:\WinPE\mount" -Index 1
    
  2. Podemos comprobar si ya tiene algún controlador añadido. Es caso de no tenerlos el comando no dará ninguna salida.

    Get-WindowsDriver -Path "C:\WinPE\mount"
    
  3. Situamos los controladores en una carpeta (p.e. C:\WinPE\Drivers).

  4. Agregamos de una vez todos los controladores de dispositivo que cuelgan de esa carpeta.

    Add-WindowsDriver -Path "C:\WinPE\mount" -Driver "C:\WinPE\Drivers" -Recurse
    
  5. Comprobamos que los controladores se han agregado a la imagen:

    Get-WindowsDriver -Path "C:\WinPE\mount"
    
  6. Una vez hayamos terminado, y si no queremos seguir modificando la imagen, la desmontamos confirmando los cambios.

    Dismount-WindowsImage -Path "C:\WinPE\mount" -Save
    

Cómo establecer el idioma a español

  1. Montamos la imagen de inicio:
    Mount-WindowsImage -ImagePath "C:\WinPE\media\sources\boot.wim" -Path "C:\WinPE\mount" -Index 1
    
  2. Ejecutamos los siguientes comandos:
    Dism /image:C:\WinPE\mount /Set-SysLocale:es-ES
    Dism /image:C:\WinPE\mount /Set-UserLocale:es-ES
    Dism /image:C:\WinPE\mount /Set-InputLocale:es-ES
    
  3. Una vez hayamos terminado, y si no queremos seguir modificando la imagen, la desmontamos confirmando los cambios.
    Dismount-WindowsImage -Path "C:\WinPE\mount" -Save
    

Añadir soporte para PowerShell y otros componentes opcionales

  1. Ejecutamos los siguientes comandos:
    $WinPEFolder = "C:\WinPE"
    $PackagesDir = "C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs"
    
    Mount-WindowsImage -ImagePath "$WinPEFolder\media\sources\boot.wim" -Index 1 -Path "$WinPEFolder\mount"
    
    Add-WindowsPackage -Path "$WinPEFolder\mount" -PackagePath "$PackagesDir\WinPE-WMI.cab"
    Add-WindowsPackage -Path "$WinPEFolder\mount" -PackagePath "$PackagesDir\es-es\WinPE-WMI_es-es.cab"
    Add-WindowsPackage -Path "$WinPEFolder\mount" -PackagePath "$PackagesDir\WinPE-SecureStartup.cab"
    Add-WindowsPackage -Path "$WinPEFolder\mount" -PackagePath "$PackagesDir\es-es\WinPE-SecureStartup_es-es.cab"
    Add-WindowsPackage -Path "$WinPEFolder\mount" -PackagePath "$PackagesDir\WinPE-NetFX.cab"
    Add-WindowsPackage -Path "$WinPEFolder\mount" -PackagePath "$PackagesDir\es-es\WinPE-NetFX_es-es.cab"
    Add-WindowsPackage -Path "$WinPEFolder\mount" -PackagePath "$PackagesDir\WinPE-Scripting.cab"
    Add-WindowsPackage -Path "$WinPEFolder\mount" -PackagePath "$PackagesDir\es-es\WinPE-Scripting_es-es.cab"
    Add-WindowsPackage -Path "$WinPEFolder\mount" -PackagePath "$PackagesDir\WinPE-PowerShell.cab"
    Add-WindowsPackage -Path "$WinPEFolder\mount" -PackagePath "$PackagesDir\es-es\WinPE-PowerShell_es-es.cab"
    Add-WindowsPackage -Path "$WinPEFolder\mount" -PackagePath "$PackagesDir\WinPE-SecureBootCmdlets.cab"
    Add-WindowsPackage -Path "$WinPEFolder\mount" -PackagePath "$PackagesDir\WinPE-StorageWMI.cab"
    Add-WindowsPackage -Path "$WinPEFolder\mount" -PackagePath "$PackagesDir\es-es\WinPE-StorageWMI_es-es.cab"
    Add-WindowsPackage -Path "$WinPEFolder\mount" -PackagePath "$PackagesDir\WinPE-DismCmdlets.cab"
    Add-WindowsPackage -Path "$WinPEFolder\mount" -PackagePath "$PackagesDir\es-es\WinPE-DismCmdlets_es-es.cab"
    Add-WindowsPackage -Path "$WinPEFolder\mount" -PackagePath "$PackagesDir\WinPE-WDS-Tools.cab"
    Add-WindowsPackage -Path "$WinPEFolder\mount" -PackagePath "$PackagesDir\es-es\WinPE-WDS-Tools_es-es.cab"
    Add-WindowsPackage -Path "$WinPEFolder\mount" -PackagePath "$PackagesDir\WinPE-PlatformId.cab"
    Add-WindowsPackage -Path "$WinPEFolder\mount" -PackagePath "$PackagesDir\WinPE-EnhancedStorage.cab"
    Add-WindowsPackage -Path "$WinPEFolder\mount" -PackagePath "$PackagesDir\es-es\WinPE-EnhancedStorage_es-es.cab"
    
    Dismount-WindowsImage -Path "$PEDir\mount" -Save
    
  2. Para iniciar PowerShell desde el entorno de Windows PE lo haremos con el siguiente comando:
    X:\Windows\system32\WindowsPowerShell\v1.0\powershell
    

Añadir Dism e ImageX

  1. Montamos la imagen de inicio:

    Mount-WindowsImage -ImagePath "C:\WinPE\media\sources\boot.wim" -Path "C:\WinPE\mount" -Index 1
    
  2. Añadimos Dism.exe e ImageX.exe.

    New-Item -Path "C:\WinPE\mount\Windows\DISM" -ItemType Directory -Force
    robocopy "C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\amd64\DISM" "C:\WinPE\mount\Windows\DISM"
    
  3. Una vez hayamos terminado, y si no queremos seguir modificando la imagen, la desmontamos confirmando los cambios.

    Dismount-WindowsImage -Path "C:\WinPE\mount" -Save
    

Posibles problemas

Si al desmontar la imagen da error, eliminamos manualmente el contenido del directorio Mount y ejecutamos el siguiente comando:

Clear-WindowsCorruptMountPoint

Generar el medio de instalación en formato ISO

  1. Iniciamos como Administrador el programa Deployment and Imaging Tools o Entorno de herramientas de implementación y creación de imágenes:
    MakeWinPEMedia /ISO C:\WinPE C:\WinPE\MyWinPE.iso
    

Generar el medio de instalación en un pendrive

  1. Iniciamos como Administrador el programa Deployment and Imaging Tools o Entorno de herramientas de implementación y creación de imágenes:
    MakeWinPEMedia /UFD C:\WinPE E:
    

Versiones de NDIS a usar según la versión de Windows

Versión Windows Versión NDIS
Windows 10 / Windows 2016 6.5
Windows 8.1 / Windows 2012 R2 6.4
Windows 8 / Windows 2012 6.3
Windows 7, Windows 7 SP1 6.2
Windows 2008 R2, Windows 2008 R2 SP1 6.2
Windows Vista SP1, Windows Vista SP2 6.1
Windows 2008, Windows 2008 SP1, Windows 2008 SP2 6.1
Windows Vista 6.0

Referencias

Microsoft Docs

SCConfigMgr

Syst & Deploy

Deployment Research

OSDeploy