Andrea Beggi

"I'm brave but I'm chicken shit"

Creare un servizio

A volte è utile/necessario far funzionare come servizio di sistema programmi che non sono stati creati con questa caratteristica.
I due casi più comuni sono: far partire un programma prima del login dell’utente, (e/o in assenza di esso), e programmi che richiedono privilegi amministrativi che non è opportuno concedere all’utente del PC.
In questo ci vengono in aiuto SRVANY.EXE e INSTSRV.EXE, entrambi presenti nel resource kit di Windows, e scaricabili a questo indirizzo.
Vanno copiati nella cartella C:\Windows\System32, o comunque nella System32 del vostro sistema.
Supponiamo che il nostro programma si chiami Rocket.exe, come prima cosa registriamolo come servizio di sistema con questo comando:
INSTSRV NomeServizio C:\Windows\System32\Srvany.exe, sostituendo a NomeServizio un nome adatto
Adesso editiamo la chiave di registro HKLM\System\Current Control Set\Services\NomeServizio\Parameters, ed aggiungiamo una stringa di tipo REG_SZ chiamata “Application”, il cui valore deve essere il path completo alla nostra applicazione. Ad esempio C:\Programmi\AcmeSoft\Rocket.exe
Fatto ciò facciamo partire il servizio, che a sua volta dovrebbe avviare il programma. Possiamo impostare le normali proprietà del servizio tramite la solita interfaccia di gestione. In alcuni casi potrebbe essere necessario abilitare l’interazione col desktop.


Pubblicato

in

da

Tag:

Commenti

27 risposte a “Creare un servizio”

  1. Avatar Mr. T

    Con Windows XP e 2003 è presente anche il programma SC.EXE con cui si possono creare/gestire/interrogare/cancellare i servizi. Tra le cose interessanti c’è anche la possibilità di farlo su un sistema remoto (a patto avviamente di avere i diritti ammistrativi). Per la sintassi si puo fare riferimento all’help in linea di Windows cercando SC, oppure con il solito SC.EXE /? dal prompt dei comandi.

    Ciao,
    Mr. T

  2. Avatar alino

    Date un’occhiata anche a questa applicazione, secondo me è molto semplice utile ed immediata.

    http://p-nand-q.com/e/pserv.html

  3. Avatar marco
    marco

    per favore, forse sono io che non ho capito, ho la necessità di far partire un programma che si chiama Argo Mail Server in versione freeware prima del login dell’amministratore del server, ho seguito i tuoi/vostri consigli ma il problema non riesco a risolverlo, in pratica mi compare un messaggio se cerco di avviare il servizio che dice che sia avvia ma si interrompe immediatamente perchè “Alcuni servizi si interrompono automaticamente se non vi sono operazioni da esegurire..
    che significa?

  4. Avatar Robbie Mastro

    Ciao Marco. ho notato che l’errore da te descritto si ha nel momento in cui non esegui il punto “Adesso editiamo la chiave di registro HKLM\System\Current Control Set\Services\NomeServizio\Parameters, ed aggiungiamo una stringa di tipo REG_SZ chiamata “Application”, il cui valore deve essere il path completo alla nostra applicazione. Ad esempio C:\Programmi\AcmeSoft\Rocket.exe” oppure sbagli il nome dell’exe o è nullo. non so se ti può essere d’aiuto. Ciao

  5. Avatar Bisco
    Bisco

    Grazie! E’ un ottimo aiuto!

  6. Avatar Fabrizio
    Fabrizio

    Ciao, è possibile creare un servizio collegando un Cmd e non un exe? stoc ercando di far partire in automatico e senza logon uno script per la apertura di 2 DB oracle che a causa di un problema sull ISCSI di mamma Microsoft mi da problemi al riavvio della macchina…. Purtroppo il servizio che creo mi da un errore 1053 che è identificabile da questa “soluzione”…http://support.microsoft.com/kb/839174/

    ma non riesco a capire esattamente come sistemarlo..

    grazie

  7. Avatar Fabrizio Ziberna

    Complimenti: in italiano !!, preciso e dettagliato: è la prima volta che scrivo un commento dopo 22 anni che “smanetto” !

  8. Avatar mioonline
    mioonline

    io qualunque servizio creo mi da l’errore 1053 al momento dell’avvio del servizio
    ..ho provato a far partire diversi programmi come servizio e il risultato è lo stesso..

    cosa curiosa è il fatto ke il programma prima parte e funziona, poi da l’errore e il programma si kiude
    nn so do metteme le mani !!!

  9. Avatar Marco
    Marco

    Ciao a tutti, vi segnalo un problema che ho con srvany. Praticamente l’ho utilizzato per impostare un’applicazione java scritta da me come un servizio di windows server 2003. A volte (senza errori lato java) capita che il servizio risulti ATTIVO ma che in effetti il processo java sotto sia bloccato. Visto che non ho trovato errori nel codice java mi chiedo se per caso sapete se questo puo’ essere un problema di srvany che in alcuni casi vede un servizio SU mentre quello sta’ GIU!!! grazie mille.

  10. Avatar Max
    Max

    Anche io qualunque servizio creo mi da l’errore 1053 al momento dell’avvio del servizio
    ..ho provato a far partire diversi programmi come servizio e il risultato è lo stesso..
    potete aiutarmi?

  11. Avatar Luca's
    Luca’s

    mi son sempre domandato come posso realizzare un programma che appaia come SYSTEM sul task manager.sto sviluppando un sistema di gestione per applicazioni in Windows. Vi e’ un modo per farlo SOLO operando via chiavi di registro di Windows e non utilizzando terzi programmi?

    Grazie infinite!

  12. Avatar simone
    simone

    salve a tutti..è possibile impostare automaticamente una priorità alta al processo che viene generato?

  13. Avatar aldo

    Possibile che nessuno sappia rispondere a qualcosa?

  14. Avatar Pierluigi
    Pierluigi

    Dire che sei un punto di riferimento per molti sistemisti è dire poco.

    Ciao

  15. Avatar Davide
    Davide

    Ciao, ho installato su un server Windows SBS 2003 R2 L’Oracle 10g, tutto Ok se non fosse che il servizio Oracle della console (OracleDbConsoleOracle10) quando prova a partire mi da l’errore 1053 (Il servizio non ha risposto alla richiesta di avvio o controllo in un modo tempestivo
    ), come posso risolvere il problema ???
    Qualcuno ha qualche idea ???
    Ciao.

  16. Avatar buffalo_soldier

    Ciao,
    io ho risolto disinstallando winzozz e usando i runlevel di linux…
    moooooolto più comodo, facile, e sicuro…
    😉

  17. Avatar antonio
    antonio

    caro amico nella mia asl c’è una parvenza di servizio ma le are funzionali non cisono poichè devono essere date achi dice il sindacato senza rispettare le normative e leggi che noi professionisti abbiamo conquistato

  18. Avatar Claudio
    Claudio

    Riguardo al problema del servizio che sia avvia ma si interrompe immediatamente col messaggio “Alcuni servizi si interrompono automaticamente se non vi sono operazioni da esegurire”, è lo stesso messaggio che si ottiene non creando affatto la nuova chiave, quindi evidentemente l’abbiamo creata nel posto sbagliato.

    Leggete dettagliatamente quello che ha scritto Andrea: la nuova stringa va creata in HKLM\System\Current Control Set\Services\NomeServizio\Parameters, ma attenzione perché la chiave “Parameters” non esiste ancora.

    Per tale motivo, l’operazione si svolge in 2 step:

    1) Creare la chiave di registro “Parameters” sotto HKLM\System\Current Control Set\Services\NomeServizio\

    2) Creare la stringa di tipo REG_SZ chiamata “Application”, con il path completo alla nostra applicazione. Se il path contiene spazi l’indirizzo completo va racchiuso tra apici.

    Ho fatto così e adesso funziona.
    Spero di far risparmiare a qualcuno il tempo che ho perso oggi pomeriggio per capire dove stava il problema.

    Claudio

  19. Avatar tomgion

    Su Vista e Windows 7 so che non da l’autorizzazione per creare delle chiavi di registro in HKLM.
    Come si può risolvere il problema???

  20. Avatar Andrea

    salve vorrei sapere qualche altro chiarimento su questa parte

    HKLM\System\Current Control Set\Services\NomeServizio\Parameters

    perchè non funziona come comando

    grazie

  21. Avatar Andrea

    cioè vorrei sapere come si crea la chiave e la stringa da dos

  22. Avatar andyzzy
    andyzzy

    sono fermo al comando instsrv, quando gli passo il nome del servizio da creare e il percorso al file srvany.exe mi restituisce
    pure i file li ho copiati e sono presenti nella cartella windows32 !
    ho istallato win 7 ultimate 64.

  23. Avatar andyzzy
    andyzzy

    quando gli passo il nome del servizio da creare e il percorso al file srvany.exe mi restituisce Unable to find the file at the given path.

  24. Avatar giorgio

    cioè ragazzi ma sapete leggere *_*

  25. Avatar bellaaaa

    quando cerco di creare il servizio mi dice che INSTSRV non è riconosciuto come comando interno o esterno, un programma eseguibile o un file batch. (ho capito che “INSTSRV NomeServizio C:\Windows\System32\Srvany.exe” si deve inserire nel cmd, se ho sbaiato mi dite dove va messo?

  26. Avatar fabrizio
    fabrizio

    Salva ho un problema con windows server 2008 ho sto cercando di far partire un applicazione come servizio creato con sc.exe quando parte mi da error 5 accesso negato