Inyectar el Update de Windows 8.1 a una imagen offline utilizando PowerShell

Ayer fue un buen día para los amantes Windows, pues Microsoft anunció finalmente desde el BUILD la disponibilidad de lo que llamaron Windows 8.1 Update. Representa una actualización acumulativa con una serie de mejoras interesantes sobre todo en la esperiencia de usuario de escritorio, y algunas cosas a nivel corporativo como el Enterprise Mode para Internet Explorer (hablaré de esto en otro artículo).

La actualización se encuentra en este momento para descarga solo a través de Suscripción MSDN e incluso aún en TechNet para los que conservan el período extendido. A partir del próximo 8 de abril se podrá ver, descargar e instalar por medio de Windows Update para usuarios finales y WSUS pensando en escenarios corporativos. Hay más información en el blog oficial.

Hoy, antes de ir a tocar nuevas características y mejoras, deseo hablar sobre la implementación de esta actualización. Existen varias formas para distribuirla, además de diferentes escenarios, pero me concentraré específicamente en la forma de inyectar esta actualización a una imagen offline (sin instalar) por medio de PowerShell teniendo todos los paquetes necesarios.

*Nota: Recordemos que estos paquetes, en caso de que no tengan suscripción, estarán disponibles el 8 de abril para su descarga.

Requerimientos

– ADK para Windows 8.1 Update, disponible en el sitio web de Microsoft:
http://www.microsoft.com/en-us/download/details.aspx?id=39982

*Nota: El ADK debe estar instalado en un equipo técnico donde se vaya a realizar el procedimiento.

– Archivos de instalación o imagen maestra de Windows 8.1.

– Los siguientes paquetes de actualización correspondientes al Update:

1.  KB2919442
2.  KB2919355
3.  KB2932046
4.  KB2937592
5.  KB2938439
6.  KB2949621

*Nota: Existe paquete para cada arquitectura (32 o 64 bits).

– Una carpeta llamada “81” creada en la unidad C:. Es decir: C:81

– Una carpeta llamada “Offline” creada en la unidad C:. Es decir: C:Offline

– Una carpeta llamada “Update” creada en la unidad C:. Es decir: C:Update

Copiando archivos de instalación de Windows

Lo primero que debemos hacer es copiar todos los archivos de instalación, sea con imagen maestra o predeterminada del medio de Windows a un directorio local para poder manipularlos.

Suponiendo que montamos un medio físico o virtual donde se encuentran, y que estamos desde un Windows 8/8.1, buscamos CMD desde la Pantalla de Inicio, hacemos clic derecho y Ejecutar como administrador:

image

Una vez abierta la consola, ejecutamos:

xcopy <UnidadWin>*.* /s/e/f C:81

Donde <UnidadWin> corresponde a la unidad virtual o física donde están los archivos de instalación. Por ejemplo, en mi caso que era la H:, el comando sería:

xcopy H:*.* /s/e/f C:81

 image

*Nota: El proceso puede tardar varios minutos.

Al terminar tendremos todos los archivos de Windows copiados al directorio C:81:

image

Montando imagen offline

Nuestro siguiente paso es montar la imagen .WIM que contienen nuestros archivos de instalación para poder hacerle inyección de paquetes sin conexión.

Para esto, buscamos la consola de PowerShell desde la Pantalla de Inicio, clic derecho y Ejecutar como administrador:

image

*Nota: Valga la aclaración que la captura de pantalla se encuentra en inglés.

Desde la consola de PowerShell, ejecutamos:

Mount-WindowsImage –ImagePath C:81Sourcesinstall.wim –Index <Ind> –Path C:Offline

Donde <Ind> corresponde al índice de nuestra imagen.

Para mi caso, sería:

Mount-WindowsImage –ImagePath C:81Sourcesinstall.wim –Index 1 –Path C:Offline

image


Recordemos que una imagen .WIM puede tener una o más ediciones de Windows y cada una es referenciada por el índice o nombre. Pueden saber el número del índice ejecutando:

Get-WindowsImage –ImagePath C:81Sourcesinstall.wim

image

*Nota: La edición Enterprise solo tiene una imagen embebida.


Al montarse la imagen, dentro del directorio Offline podemos ver algo similar a lo que normalmente tiene la raíz C: de nuestro sistema operativo:

image

Inyectando Update para Windows 8.1

Llegamos finalmente al paso donde inyectaremos la actualización a nuestra imagen, pero antes es necesario asegurar la descarga de todas las KB especificadas en los requisitos y guardarlas en la carpeta C:Update creada también desde antes:

image

Ahora, con un solo comando podemos normalmente inyectar varias actualizaciones al tiempo, sea desde DISM o PowerShell pero, en este caso, es necesario inyectar una por una pues cada componente debe quedar correctamente instalado para que la siguiente actualización se instale de manera adecuada.

En este orden de ideas, debemos ejecutar los comandos en PowerShell en el siguiente orden:

Add-WindowsPackage -Path C:Offline -PackagePath C:UpdateWindows8.1-KB2919442-x64.msu

Add-WindowsPackage -Path C:Offline -PackagePath C:UpdateWindows8.1-KB2919355-x64.msu

Add-WindowsPackage -Path C:Offline -PackagePath C:UpdateWindows8.1-KB2932046-x64.msu

Add-WindowsPackage -Path C:Offline -PackagePath C:UpdateWindows8.1-KB2937592-x64.msu

Add-WindowsPackage -Path C:Offline -PackagePath C:UpdateWindows8.1-KB2938439-x64.msu

Add-WindowsPackage -Path C:Offline -PackagePath C:UpdateWindows8.1-KB2949621-v2-x64.msu

*Nota: Es primordial que sea ejecute uno por uno hasta que todos estén instalados, aunque pueden lanzar todos en un solo Script de PowerShell.

*Nota 2: No se preocupen si el proceso tarda un buen rato, porque es completamente normal.

Debemos tener un resultado similar a la siguiente captura:

image

Desmontanto imagen offline

Ya inyectado todo, debemos terminar desmontando completamente la imagen, además de guardar los cambios para que la actualización se mantenga.

Para esto, desde PowerShell ejecutamos:

Dismount-WindowsImage –Path C:Offline –Save

image

Creando imagen ISO de instalación

Este último procedimiento podría ser opcional, pues depende de cómo se desplegará la imagen, pero pensando en que se creará una imagen para instalación individual, es necesario crear el .ISO basado en los archivos de instalación que tenemos en el directorio de Windows: C:81.

Para esto, buscamos Deployment and Imaging Tools Environment desde la Pantalla de Inicio, hacemos clic derecho y seleccionamos Ejecutar como administrador:

image

Corremos el siguiente comando para generar una ISO que pueda hacer boot:

Para equipos con Legacy BIOS:

Ejecutamos:

oscdimg –bC:81bootetfsboot.com –u2 –h C:81 C:Win81U.ISO

image

Para equipos con BIOS UEFI

Ejecutamos:

oscdimg –bC:81efimicrosoftbootEfisys.bin –pEF –u1 –udfver102 C:81 C:Win81U_UEFI.ISO

image

*Nota 1: El nombre antes del .ISO lo pueden modificar como quieran. El proceso puede tardar algunos minutos.

*Nota 2: Si van a instalar en Hyper-V, en caso de que sea máquina Generación 1, utilizan lo de Legacy BIOS; para Generación 2, utilizan el comando de UEFI.

¡Ya tenemos nuestra imagen con el Update integrado! Lo unico que nos falta es ver si todo funciona bien.

Instalando y probando

Basta con grabar la ISO en un DVD o crear una USB de arranque para instalar y después verificar que la actualización haya quedado aplicada en la imagen:

image

Espero sea de utilidad.

PD. No olviden seguirme en Twitter: www.twitter.com/secalderonr

Saludos.

Checho

3 comentarios en “Inyectar el Update de Windows 8.1 a una imagen offline utilizando PowerShell”

Responder a anonymous Cancelar respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *