Guía para personalizar la instalación automática de Windows 11. Modificando el archivo autounattend.xml, puedes cargar automáticamente todos los programas que necesites al finalizar la configuración de Windows 11.
Si nos sigues desde hace tiempo, ya lo sabes. La última fase de la instalación de Windows 11, llamada OOBE (Out of Box Experience), no nos gusta mucho. Microsoft la ha llenado con demasiadas pantallas, algunas de las cuales son innecesarias para los usuarios. Sin mencionar la obligación de configurar una cuenta de Microsoft o conectarse a Internet. En otro artículo, vimos cómo instalar Windows 11 automáticamente con la configuración desatendida. Ahora, doy un paso más y revelamos cómo instalar cualquier programa al finalizar la rutina de configuración de Windows 11.
¿Por qué instalar automáticamente los programas al finalizar la instalación de Windows 11?
El archivo autounattend.xml
permite instalar Windows 11 Pro sin realizar un solo paso manual. Solo tienes que cargar el archivo autounattend.xml
al mismo nivel que el archivo setup.exe
, en el soporte de instalación de Windows 11, iniciar desde esa unidad y… ¡listo! Recuerda, sin embargo, que la rutina de instalación borra por defecto todo lo que pueda haber en la unidad de disco principal para hacer espacio para Windows 11. Haz algunas pruebas en una máquina virtual para familiarizarte con la instalación desatendida.
La instalación desatendida permite tener una instancia de Windows 11 perfectamente operativa desde el primer acceso al escritorio del sistema operativo.
Aquí, con un simple paso adicional, puedes pedirle al archivo autounattend.xml que disponga la instalación de cualquier programa que pueda ser útil con Windows 11.
Imagina instalar Windows 11 desde un USB y tener ya disponibles todas las aplicaciones que usas a diario. Pues bien, con unos pocos comandos sencillos, vamos a hacer precisamente eso.
Elegir las aplicaciones para instalar automáticamente
Empezamos con este comando que hemos desarrollado para ti:
powershell.exe -Command "echo 'if (Test-Connection -ComputerName google.com -Count 1 -Quiet) { schtasks /Change /TN InstalacionPaquetes /DISABLE; winget install Google.Chrome --accept-package-agreements --accept-source-agreements --scope machine; winget install --id=7zip.7zip --scope machine }' > %TEMP%\InstalacionPaquetes.ps1" & schtasks /create /tn "InstalacionPaquetes" /tr "powershell.exe -NoProfile -ExecutionPolicy Bypass -File %TEMP%\InstalacionPaquetes.ps1" /sc MINUTE /mo 5 /f /rl HIGHEST
Parece complicado, pero no lo es en absoluto.
El comando crea un archivo de PowerShell (InstalacionPaquetes.ps1
) en la carpeta temporal %temp%
de Windows 11. En su interior, inserta una serie de referencias a Winget, el administrador de paquetes oficial de Microsoft, indicando qué aplicaciones descargar e instalar.
El siguiente schtasks
hace que la ejecución del archivo de PowerShell se configure a través del Programador de tareas de Windows con los privilegios de usuario más amplios.
En el ejemplo, configuramos la descarga e instalación de Google Chrome y 7-Zip, pero puedes agregar otras directivas para cargar automáticamente otros programas. Añadimos, por ejemplo, IrfanView, VLC, Visual Studio Code, Microsoft PowerToys:
winget install Google.Chrome --accept-package-agreements --accept-source-agreements --scope machine; winget install --id=7zip.7zip --scope machine; winget install --id=IrfanSkiljan.IrfanView --scope machine; winget install --id=VideoLAN.VLC --scope machine; winget install --id=Microsoft.VisualStudioCode --scope machine;winget install --id=Microsoft.PowerToys --scope machine
Simplemente sustituye el comando en lugar de la parte resaltada en negrita. Obviamente, puedes agregar otros programas buscando los identificadores (id) correspondientes con la siguiente sintaxis de Winget:
winget search nombreprograma
Crear un archivo autounattend.xml personalizado
Descarga el archivo autounattend.xml que presentamos en el artículo de la introducción y ve al sitio Unattend Generator.
Haz clic en “Seleccionar archivo” a la derecha de “Import file“, selecciona nuestro archivo autounattend.xml
y luego haz clic en “Import“.
Desplázate hasta encontrar la sección “Scripts to run when the first user logs on after Windows has been installed“.
En el primer cuadro “Run (as a .cmd file)“, pega el comando producido anteriormente. Por ejemplo:
powershell.exe -Command "echo 'if (Test-Connection -ComputerName google.com -Count 1 -Quiet) { schtasks /Change /TN InstalacionPaquetes /DISABLE; winget install Google.Chrome --accept-package-agreements --accept-source-agreements --scope machine; winget install --id=7zip.7zip --scope machine; winget install --id=IrfanSkiljan.IrfanView --scope machine; winget install --id=VideoLAN.VLC --scope machine; winget install --id=Microsoft.VisualStudioCode --scope machine;winget install --id=Microsoft.PowerToys --scope machine }' > %TEMP%\InstalacionPaquetes.ps1" & schtasks /create /tn "InstalacionPaquetes" /tr "powershell.exe -NoProfile -ExecutionPolicy Bypass -File %TEMP%\InstalacionPaquetes.ps1" /sc MINUTE /mo 5 /f /rl HIGHEST
Ve al final de la página y haz clic en “Download xml file“.
Agregar el archivo autounattend.xml al soporte de instalación de Windows 11
El archivo autounattend.xml
así obtenido simplemente se copia en el soporte de instalación de Windows 11, al mismo nivel que el archivo setup.exe
.
Si lo deseas, puedes modificar el archivo ISO de Windows 11 con la utilidad Anyburn, como se explica en el artículo sobre el funcionamiento de la instalación desatendida de Windows 11.
Una vez finalizada la configuración de Windows 11, que procede de forma totalmente automatizada, después de unos 5 minutos (o en el momento en que el script de PowerShell detecte una conexión a Internet activa y funcionando…), comenzarán la descarga y la instalación automática de las aplicaciones con Winget.
No es absolutamente fantástico?
Una vez instalados los programas de tu interés con Winget, el script de PowerShell desactiva la operación programada. Si lo deseas, puedes eliminarla escribiendo “Programador de tareas”, haciendo clic en “Biblioteca del Programador de tareas” y luego eliminando la tarea “InstalacionPaquetes” en el panel derecho (botón derecho “Eliminar“).
El script también crea el archivo InstalacionPaquetes.ps1
en la carpeta temporal de Windows. Eventualmente, puedes eliminarlo escribiendo el siguiente comando desde una ventana del símbolo del sistema:
del %temp%\InstalacionPaquetes.ps1
Por último, es importante aclarar el significado de --scope machine
que hemos usado en los comandos de Winget. Hace que cada uno de los programas instalados automáticamente con el administrador de paquetes de Microsoft esté disponible para todas las cuentas de usuario configuradas en la misma máquina.