Crear o convertir un ejecutable en un servicio en windows con un archivo .exe

Ahora los pasos necesarios, para hacer que una aplicación, archivo ejecutable se ejecute al incio del ordenador de forma automática, como un servicio. Esto está testeado en windows XP home y  XP Profesional.

PASOS A SEGUIR:
0- Copiar los archivos instsrv.exe y srvany.exe a la carpeta  windows\system32

1-ejecutar en consola:
C:\Documents and Settings\Admin>c:\WINDOWS\system32\instsrv.exe  NOMBRE_NUEVO_SERVICIO c:\WINDOWS\system32\srvany.exe

Respuesta consola:

” The service was successfuly added!

Make sure that you go into the Control Panel and use
the Services applet to change the Account Name and
Password that this newly installed service will use
for its Security Context. “

2 - ejecutar:  regedit -> HKLM\system\CurrentControlSet\Services -> aparece el servicio creado

3 - crear carpeta llamada “Parameters” (boton derecho nueva clave)

4 - crear dentro de parameters nuevo “valor alfanumercio” llamado “Application”: con el valor : RUTA/nombre_del_ejecutable_del_servicio.exe

5 - [opcional] ir a administrar servicios para activar el servicio o reiniciar para que se encienda. Por defecto se crea el servicio con  Encendido automatico.
Descargar archivos necesarios crear-servicio en windows

Ejemplo de usar el comando para convertir una ejecutable en servicio de windows:

C:\>instsrv.exe
Installs and removes system services from NT

INSTSRV <service name> (<exe location> | REMOVE)
[-a <Account Name>] [-p <Account Password>]

Install service example:

INSTSRV MyService C:\MyDir\DiskService.Exe
-OR-
INSTSRV MyService C:\mailsrv\mailsrv.exe -a MYDOMAIN\joebob -p foo

Remove service example:

INSTSRV MyService REMOVE

C:\>c:\WINDOWS\system32\instsrv.exe Servidor-EasyPHP c:\WINDOWS\system32\srvany.
exe

The service was successfuly added!

Make sure that you go into the Control Panel and use
the Services applet to change the Account Name and
Password that this newly installed service will use
for its Security Context.

C:\>

_____________________ Explicación completa  de un tercero _______________________________

Para crear un servicio con un ejecutable lo puedes hacer con herramientas de Microsoft o con herramientas de terceros.
Con herramientas de Microsoft

Se necesitan dos programas del Kit de recursos, instsrv.exe y srvany.exe; se lanza desde un cmd la línea:

<path>instsrv.exe “Nombre del Servicio” <path>srvany.exe

Es imprescindible pasar el path donde esten ambos ejecutables.

Una vez hecho esto, se abre regedit y en HKLM\system\CurrentControlSet\Services verás que se ha creado una clave(useasé carpeta) “Nombre del Servicio”(si abres la consola de servicios verás que ya se ve en la lista); pinchas en el árbol en ella y creas una subclave(useasé carpeta) llamada “Parameters”, dentro de ella un valor de cadena llamado “Application” al que de contenido le pones Ruta\Nombre.exe. Ya tienes creado el servicio. De esta manera se crea con arranque automático y lanzado por cuenta del sistema; te metes en servicios y cambias lo que haga falta(se puede hacer desde línea de comandos con “sc.exe”).

Ten en cuenta que el programa debe recibir las rutas absolutas de donde deba acceder, ya que al arrancarse como servicio digamos que “desconoce” en qué ruta se encuentra su propio ejecutable, con lo que no sabe manejar rutas relativas. Esto es así porque no se crea un servicio con el ejecutable en realidad, si no que se crea con srvany como el ejecutable del servicio y el ejecutable que queremos lanzar como parámetro (quizás si ubicamos una copia de srvany en la misma carpeta en la que está el ejecutable funciona, pero dependerá del ejecutable en sí)

Otra posibilidad, que a lo mejor te puede valer y es más simple, es lanzar la aplicación en un script de inicio del equipo; se abre el editor de políticas del sistema (gpedit.msc) y se especifica en “Configuración de equipo\Configuración de Windows\Archivos de comandos (inicio/apagado)”. De esta forma se ejecutará, si bien no será un servicio.

Por último, puedes editar el registro para que se lance desde la clave “HKLM\Software\Microsoft\Windows\CurrentVersion\Run”, creando un valor de tipo string (REG_SZ) al que llames como te parezca y que contenga la llamada al ejecutable. De esta forma se ejecutará, si bien no será un servicio.
Con herramientas de terceros

Existen herramientas de terceros que te permiten lanzar aplicaciones como servicios. Aquí pongo enlaces a cuatro de ellas:

Firedaemon
http://www.firedaemon.com/

Application as service 1.0
http://www.eltima.com/products/application-as-service/

Service Mill
http://www.activeplus.com/us/products/smill/

Serve All
http://www.transsoft.com/view_content.asp?ID=25

Etiquetas: , , , , , , ,

2 comentarios para “Crear o convertir un ejecutable en un servicio en windows con un archivo .exe”

  1. Pedro Velarde dice:

    Hola,

    El método en Windows XP y 2003 Server funciona perfectamente, pero no lo he conseguido en Windows 7, han encontrado ustedes alguna forma de hacerlo en W7 ¿?

    muchas gracias por todo y un saludo,

  2. cristian dice:

    Pues no lo he probado, haber si alguien nos dice como crear un servicio de un ejecutable en windows7, que error nos dio Pedro?

Deja un comentario

CAPTCHA Image Audio Version
Reload Image