La situación
Una aplicación de escritorio esencial era el último software corporativo que todavía requería una instalación manual por parte de TI. Ya no tenía soporte, sus opciones de despliegue eran limitadas y el proceso tenía pasos antes y después del reinicio, tanto en contexto de máquina como de usuario. A primera vista, era una candidata excelente para dejarla tranquila.
Lo que encontré
El instalador del fabricante era solo una parte del procedimiento real. Había que colocar correctamente las bibliotecas de runtime (DLL), aplicar ajustes del Registro de Windows a nivel de equipo, reiniciar el equipo y abrir la aplicación una vez con privilegios elevados, y después aplicar los ajustes de usuario a los perfiles existentes. La desinstalación planteaba otro problema: los cuadros de diálogo del fabricante debían aparecer en el escritorio del usuario con la sesión iniciada, aunque el despliegue se ejecutase en contexto SYSTEM.
Lo que cambié
Repasé el proceso manual con el compañero más experimentado, documenté el motivo de cada paso y dividí la automatización en fases claras. PowerShell se encargó de la instalación inicial y la configuración de la máquina; los archivos preparados localmente y una tarea programada permitieron continuar después del reinicio; los ajustes de los perfiles se trasladaron de forma explícita; y un flujo de desinstalación independiente gestionó el cambio del contexto SYSTEM a la sesión del usuario. Los registros de ejecución y la limpieza formaron parte del proceso desde el principio.
El resultado
La aplicación pasó a estar disponible en el Portal de empresa (Company Portal) tanto para su instalación como para su desinstalación gestionada. TI ya no tenía que repetir los ocho pasos en cada portátil, incluidos los preparados fuera de la oficina, y el personal de soporte disponía de registros y una estructura que permitían localizar los fallos.
Lo que haría de otra forma
La solución original utilizaba ServiceUI como puente práctico para la desinstalación interactiva en contexto SYSTEM. Más adelante, PSAppDeployToolkit 4.1 introdujo un modelo de interfaz cliente/servidor diseñado para esa interacción. En una implementación nueva, revisaría esa capa en lugar de conservar la alternativa utilizada originalmente.