Trasforma uno Script PowerShell in un Servizio Windows (da ps1 a Servizio)
Come è noto, PowerShell funziona in modo eccellente nel campo dell'amministrazione. Tuttavia, ci sono momenti in cui è necessario eseguire uno script ps1 come servizio. Poiché PowerShell è stato inizialmente progettato come strumento per l'automazione e la gestione del sistema, non può funzionare in modalità Servizio in modo nativo (PowerShell a Servizio).
Questa limitazione può essere frustrante quando hai bisogno di uno script di monitoraggio in background, un'attività di pulizia automatizzata o qualsiasi processo PowerShell di lunga durata su Windows Server 2025 — specialmente in ambienti di produzione dove ci si aspetta che i servizi partano automaticamente e sopravvivano al logout degli utenti.
Fortunatamente, questo problema può essere risolto utilizzando strumenti di terze parti che consentono di eseguire qualsiasi eseguibile (o script) come servizio Windows.
Strumenti per Eseguire File EXE come Servizi Windows
Esistono molte utility che possono convertire un file eseguibile in un servizio Windows, tra cui:
- AlwaysUp
- NSSM (Non-Sucking Service Manager)
- WinSW
- SrvStart
- EXE Service
In questo articolo, utilizzeremo EXE Service, poiché fornisce già un esempio di configurazione pronto per PowerShell e supporta sia l'interfaccia grafica che la riga di comando.
Eseguire uno Script PowerShell come Servizio Windows
Passo 1: Apri EXE Service
Dopo aver installato EXE Service, apparirà una scorciatoia sul tuo desktop.
L'interfaccia grafica è pensata solo per semplificare la creazione del servizio.
Se stai lavorando su un Windows Server senza GUI, hai due opzioni:
- Creare il servizio su un PC normale e poi trasferirlo sul server
- Eseguire EXE Service direttamente sul server utilizzando la riga di comando
Passo 2: Crea un Nuovo Servizio
EXE Service include già un esempio pronto per PowerShell a Servizio.
Basta fare clic sul pulsante "Crea da esempio".

Passo 3: Configura il Percorso del Tuo File .ps1
Nella finestra che appare, è necessario specificare i percorsi corretti:
- Percorso dell'eseguibile:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe - Directory di lavoro:
Specifica la cartella in cui si trova il tuo file script - Argomenti:
-ExecutionPolicy Bypass -File "C:\Percorso\Del\Tuo\Script.ps1"
Assicurati che i percorsi corrispondano alla tua installazione effettiva di PowerShell e alla posizione dello script.

Passo 4: Salva e Avvia il Servizio
Fai clic su "Crea servizio" per creare il servizio Windows.
Se desideri che il servizio venga eseguito immediatamente su questo computer, fai clic su "Avvia".
Dopo questo, il tuo script PowerShell:
- Verrà eseguito come servizio Windows
- Si avvierà automaticamente con il sistema
- Sopravvivrà ai logout degli utenti e ai cambi di sessione
- Sarà gestibile tramite il gestore dei servizi Windows (
services.msc)
Trasferire il Servizio su un Altro Server
Se prevedi di spostare la configurazione del servizio su un altro Windows Server, segui le istruzioni ufficiali di trasferimento di EXE Service fornite nella loro documentazione.
Questo approccio è particolarmente utile quando si distribuiscono configurazioni identiche su più server.
Conclusione
PowerShell non è stato creato come servizio — ma strumenti come EXE Service risolvono il problema in modo pulito. Incapsula il tuo script .ps1, e verrà avviato all'avvio, sopravvivrà ai logout e si integrerà perfettamente con services.msc. Nessuna soluzione approssimativa, nessun trucco con le attività pianificate. Solo una soluzione semplice e pronta per l'amministratore.