Scrivo questa breve guida più che altro come personale promemoria ma…se adesso sei qui e stai leggendo, probabilmente anche tu hai la mia stessa esigenza e stai cercando un modo per avviare un file eseguibile EXE come servizio di Windows e, soprattutto, a prescindere dal fatto che un utente sia loggato al sistema! Probabilmente ti sei già imbattuto in srvany.exe e, sempre probabilmente, ci hai già sbattuto le corna…se è così sei nel posto giusto!
Ti presento SrvStart di Rozanski, che ho eletto come mio migliore amico dell’anno!!!
Analizziamo un attimo la mia esigenza, che potrebbe non differire molto dalla tua: avevo bisogno che partisse in automatico all’avvio del mio server un client di sincronizzazione di Google Drive, nello specifico volevo che Insync (se non lo conosci dai un occhio qui, è il top per me) venisse avviato non come applicazione dopo l’accesso dell’utente sul server, ma come vero e proprio servizio di Windows, senza alcuna interazione da parte mia con il server e soprattutto che continuasse a funzionare anche se avessi dovuto loggarmi e successivamente sloggarmi dal server in questione, comportamento che solo i servizi di sistema possono permettersi…
Navigando e navigando e navigando per ore su internet senza trovare inizialmente una soluzione gratuita al mio scopo, mi sono finalmente imbattuto nella pagina GitHUB del mitico Rozanski, il quale creò questo piccolo ma formidabile software nell’ormai lontano anno 2000. Il tutto è abbastanza chiaro ma i file che Rozanski ti fa scaricare sono diversi e ce ne sono alcuni che non servono allo scopo finale di questa guida. Ho deciso quindi di raccogliere i soli file necessari in questo zip e non servirà nient’altro, ho incluso anche un piccolo txt con le istruzioni necessarie e che riassumo qui di seguito:
- Scarica il file zip con tutto il necessario
- Copia tutti i file nella cartella C:\Windows\System32 (se dovesse chiederti di sovrascrivere il file MSVCRT.DLL non lo fare, vuol dire che il tuo sistema ha già questo file e probabilmente è più recente!)
- Se il tuo sistema è a 64 bit copia i file anche nella cartella C:\Windows\SysWOW64
- Crea una cartella C:\SRVSTART ed in essa crea il file SRVSTART.INI (puoi creare cartella e file anche altrove e con nomi diversi, l’importante è che ti ricordi di correggere con i tuoi valori i comandi successivi, dove richiesto)
- Popola il file SRVSTART.INI con il seguente testo: (Sostituisci “NOMESERVIZIO” e “PERCORSOESEGUIBILE.EXE” secondo le tue necessità!)
[NOMESERVIZIO] startup=C:\PERCORSOESEGUIBILE.EXE
- Avvia il command prompt di Windows (cmd) come Amministratore e lancia il seguente comando: (sostituisci i valori in base alle tue esigenze)
srvstart.exe install NOMESERVIZIO -c C:\SRVSTART\SRVSTART.INI
- Fatto ciò apri il gestore servizi di Windows, individua il servizio appena installato (avrà il nome che gli hai assegnato come NOMESERVIZIO) ed imposta l’avvio automatico.
- Se il file EXE che vuoi eseguire è legato ad un utente specifico, come nel mio caso, entra nel tab “Connessioni” e metti il “pallino” su Account anziché Account di sistema locale, inserisci quindi l’account e la relativa password
A questo punto puoi verificare il tutto avviando il servizio appena creato, se quest’ultimo parte e resta avviato il gioco è fatto!
Personalmente utilizzo con successo questo sistema su Windows Server 2008 R2 e Windows Server 2019.
That’s all folks!
Simone ciao,
perfetto,
chiaro funzionante e utilissimo.
Grazie.
Ciao Simone,
il tuo articolo e i tuoi suggerimenti hanno risolto il mio problema!!!
Grazie e a buon rendere!!!
Stefano
seekers64atgmail.com
Ciao Stefano, felice di esserti stato utile!!