- Organiza los instaladores y recursos en carpetas separadas para evitar conflictos
- Usa scripts orquestadores para gestionar múltiples instalaciones de forma automatizada
- Implementa instalaciones silenciosas con parámetros adecuados y transforma archivos MSI si es necesario
- Valida que la aplicación aparezca correctamente instalada y sin errores ni reinicios no deseados
Automatizar la instalación de software en sistemas Windows es una práctica fundamental tanto para administradores de sistemas como para técnicos responsables de instalaciones masivas. Cuando hablamos de instaladores con extensión .msi o .exe, las posibilidades de automatización varían según el tipo de archivo, pero ambas opciones permiten un alto grado de personalización siempre que se conozcan los parámetros adecuados.
En este artículo te explicamos de forma detallada cómo automatizar este tipo de instalaciones, desde la preparación del entorno hasta la ejecución silenciosa de los scripts. Si necesitas incluir varios paquetes en un solo proceso, también abordaremos cómo crear scripts orquestadores y empaquetarlo todo en un único archivo. Todo explicado con ejemplos prácticos que podrás adaptar fácilmente a tu entorno.
Preparación de los archivos de instalación
Antes de comenzar con cualquier automatización, es clave organizar bien los instaladores y recursos. Cada ejecutable o archivo debe contar con un nombre único, ya que si trabajamos con múltiples piezas dentro de un mismo directorio temporal, podrían sobrescribirse entre sí.
Una buena práctica consiste en crear una estructura de carpetas diferenciada para cada aplicación. Por ejemplo, puedes crear subdirectorios llamados «App1», «App2», etc., dentro del directorio raíz de tu paquete de instalación.
Compresión en archivos .cab
Una de las formas más efectivas de empaquetar múltiples recursos es mediante la utilización de archivos .cab. Para crearlos, necesitas un archivo DDF (Diamond Directive File) donde se especifican los archivos a incluir y ciertas configuraciones de compresión.
Aquí tienes un modelo básico de archivo DDF que puedes adaptar a tu entorno:
.Set CabinetNameTemplate=tt.cab
.Set DiskDirectory1=.
Tras tener el DDF listo, solo hay que ejecutar:
makecab -f ruta_del_archivo.DDF
Creación de scripts de instalación
Una vez que tienes los recursos organizados, el siguiente paso es generar los scripts que se encargarán de instalar los paquetes. Puedes optar por tener un script por aplicación o un único script orquestador que las gestione todas.
Ejemplo básico de registro
set LOGFILE=%SystemDrive%\HelloWorld.log
echo Hello, World >> %LOGFILE%
Instalación silenciosa de un archivo .exe
set LOGFILE=%SystemDrive%\Fiddler_install.log
echo Installing Fiddler.exe >> %LOGFILE%
fiddler4setup.exe /S >> %LOGFILE%
echo result: %ERRORLEVEL% >> %LOGFILE%
Instalación silenciosa de un archivo .msi
set LOGFILE=%SystemDrive%\MSI_Install.log
echo Installing MyApp.msi >> %LOGFILE%
msiexec /i MyApp.msi /quiet >> %LOGFILE%
echo result: %ERRORLEVEL% >> %LOGFILE%
Ejecutar script de PowerShell
set LOGFILE=%SystemDrive%\PowershellScript.log
echo Ejecutando PowerShell >> %LOGFILE%
PsExec.exe -accepteula -i -s cmd.exe /c 'powershell.exe my_script.ps1' >> %LOGFILE%
echo result: %ERRORLEVEL% >> %LOGFILE%
Gestión de múltiples instalaciones
Si necesitas instalar varias aplicaciones, lo más eficiente es usar un script orquestador que se encargue de ejecutar los instaladores. Este script se invocará desde una única línea de comandos y podrá llamar a los demás scripts o instaladores según sea necesario.
Por ejemplo:
@echo off
call install_app1.bat
call install_app2.bat
call my_script.ps1
Configuración en el Diseñador de configuraciones de Windows
Cuando el script esté listo, deberás agregarlo al paquete desde el Diseñador de configuraciones de Windows. En el campo CommandLine
, se indicará el comando principal, como:
cmd /c InstallMyApp.bat
Luego, en CommandFiles
, se incluyen los archivos adicionales que el script necesita: instaladores, archivos de registro, scripts individuales, etc.
Consideraciones de ejecución
- No se permite interacción con el usuario durante la instalación. Ni mensajes emergentes, ni asistentes, ni pausas. Todo debe ejecutarse en segundo plano.
- El aprovisionamiento ocurre antes de que se configure el usuario en el sistema, así que debes usar instaladores que no dependan del contexto del usuario.
- Evita modificar visualmente el sistema durante la ejecución del script.
- Los archivos se guardan en una ubicación temporal única por paquete. Por ejemplo,
%WINDIR%\system32\config\systemprofile\appdata\local\Temp\ProvisioningPkgTmp\{GUID}
Uso de parámetros con instaladores .msi
Para automatizar completamente una instalación de MSI, es importante dominar los parámetros más comunes como:
- /quiet: instalación sin ventanas
- /qn: modo silencioso
- PROPERTY=VALUE: establecer propiedades personalizadas
Instalación silenciosa y validación
Una instalación bien automatizada debería instalar el software sin mostrar nada al usuario y registrar una entrada válida en el panel de control. Verifica que:
- La aplicación aparece en Programas y características
- El nombre del producto y del fabricante están correctos
- No se instalan múltiples entradas innecesarias (bundleware)
Uso de archivos de transformación (.mst)
Si el MSI requiere muchas personalizaciones, puedes usar un archivo .mst. Este archivo permite preconfigurar propiedades del instalador y evitar errores como el famoso código 1603 que indica fallo durante la instalación.
Algunos instaladores facilitan herramientas para generar estos archivos, aunque también puedes usar herramientas como Orca para crear tus propias transformaciones.
Manejo de reinicios automáticos
Dependiendo del comportamiento del instalador, puede que se necesite reiniciar el sistema. Lo ideal es controlar esto desde el administrador de distribución o mediante propiedades como:
- REBOOT=ReallySuppress: evita cualquier reinicio
- /norestart: impide el reinicio después de instalar
- /forcerestart: obliga al sistema a reiniciar tras la instalación
Redactor apasionado del mundo de los bytes y la tecnología en general. Me encanta compartir mis conocimientos a través de la escritura, y eso es lo que haré en este blog, mostrarte todo lo más interesante sobre gadgets, software, hardware, tendencias tecnológicas, y más. Mi objetivo es ayudarte a navegar por el mundo digital de forma sencilla y entretenida.