Convertir un script de PowerShell en un servicio de Windows (ps1 a servicio)
Como es bien sabido, PowerShell funciona de manera excelente en el ámbito de la administración. Sin embargo, hay ocasiones en las que es necesario ejecutar un script ps1 como un servicio. Dado que PowerShell fue diseñado inicialmente como una herramienta para la automatización y la gestión del sistema, no puede funcionar de forma nativa en modo Servicio (PowerShell a Servicio).
Esta limitación puede resultar frustrante cuando necesitas un script de supervisión en segundo plano, una tarea de limpieza automatizada o cualquier proceso de PowerShell de larga duración en Windows Server 2025, especialmente en entornos de producción donde se espera que los servicios se inicien automáticamente y sobrevivan a los cierres de sesión de los usuarios.
Afortunadamente, este problema se puede resolver utilizando herramientas de terceros que permiten ejecutar cualquier archivo ejecutable (o script) como un servicio de Windows.
Herramientas para ejecutar archivos EXE como servicios de Windows
Existen muchas utilidades que pueden convertir un archivo ejecutable en un servicio de Windows, entre ellas:
- AlwaysUp
- NSSM (Non-Sucking Service Manager)
- WinSW
- SrvStart
- EXE Service
En este artículo, utilizaremos EXE Service, ya que ya proporciona un ejemplo de configuración listo para PowerShell y cuenta con soporte tanto de interfaz gráfica como de línea de comandos.
Ejecutar un script de PowerShell como un servicio de Windows
Paso 1: Abrir EXE Service
Después de instalar EXE Service, aparecerá un acceso directo en tu escritorio.
La interfaz gráfica solo tiene la intención de facilitar la creación del servicio.
Si estás trabajando en un Windows Server sin interfaz gráfica, tienes dos opciones:
- Crear el servicio en un PC normal y luego transferirlo al servidor
- Ejecutar EXE Service directamente en el servidor utilizando la línea de comandos
Paso 2: Crear un nuevo servicio
EXE Service ya incluye un ejemplo listo para usar de PowerShell a Servicio.
Simplemente haz clic en el botón "Crear desde ejemplo".

Paso 3: Configurar la ruta a tu archivo .ps1
En la ventana que aparece, debes especificar las rutas correctas:
- Ruta al ejecutable:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe - Directorio de trabajo:
Especifica la carpeta donde se encuentra tu archivo de script - Argumentos:
-ExecutionPolicy Bypass -File "C:\Ruta\A\Tu\Script.ps1"
Asegúrate de que las rutas coincidan con tu instalación real de PowerShell y la ubicación del script.

Paso 4: Guardar e iniciar el servicio
Haz clic en "Crear servicio" para crear el servicio de Windows.
Si deseas que el servicio se ejecute inmediatamente en esta computadora, haz clic en "Iniciar".
Después de esto, tu script de PowerShell:
- Se ejecutará como un servicio de Windows
- Se iniciará automáticamente con el sistema
- Sobrevivirá a los cierres de sesión de usuario y cambios de sesión
- Será gestionable a través del administrador de servicios de Windows (
services.msc)
Transferir el servicio a otro servidor
Si planeas mover la configuración del servicio a otro Windows Server, sigue las instrucciones oficiales de transferencia de EXE Service proporcionadas en su documentación.
Este enfoque es especialmente útil al implementar configuraciones idénticas en múltiples servidores.
Conclusión
PowerShell no fue construido como un servicio, pero herramientas como EXE Service resuelven eso de manera limpia. Envuelve tu script .ps1, y se iniciará al arrancar, sobrevivirá a los cierres de sesión y se integrará perfectamente con services.msc. Sin soluciones complicadas, sin trucos de tareas programadas. Solo una solución directa y lista para el administrador.