26 agosto, 2013

Crear servicios de Windows con SC [Service Controller]

Esta vez comentaré al igual que una de las últimas entradas en las que decía como crear servicios de Windows con Process Hacker, pero esta vez mostraré como hacerlo con una propia herramienta de Windows, la cual es mediante el uso del comando sc.exe (Service Controller) a través de la consola de comandos.

La estructura del comando sería del siguiente modo:
sc create [nombreDeServicio] [binpath=nombreDeRutaDeBinario]
[type={own|share|kernel|filesys|rec|adapt|interact type={own|share}}]
[start={boot|system|auto|demand|disabled}] [displayname=nombreDescriptivo]
Ahora explicaré cada uno de los parámetros utilizados.

nombreServicio: Especificar un nombre al servicio.
binpath=nombreRutaBinario: Especificar una ruta absoluta del fichero binario ejecutable con el que queremos crear el servicio.
type={own|share|kernel|filesys|rec|adapt|interact type={own|share}}: Especificamos el tipo de servicio, los servicios interactivos se tiene ejeuctar con la cuenta LocalSystem. Se utiliza type=interact acompañado de los atributos own o share, dependiendo de si el servicio se ejecuta en su propio proceso y no comparte otros archivos binarios con otros servicios.
start={boot|system|auto|demand|disabled}: Especificamos el tipo de inicio del servicio, lo dejaremos en auto, de modo que se ejecute sin la ayuda de ningún usuario y cada vez que reiniciemos el equipos se auto-ejecutará.
displayname=nombreDescriptivo: Especificar un nombre descriptivo "entendible" al usuario.

Como ejemplo para crear un servicio de Windows, usaré el software de montar imágenes de CD/DVD; "Daemon Tools Lite" y sería del siguiente modo:
sc create DaemonToolsLite binpath=C:\Program Files (x86)\DAEMON Tools Lite\DTLite.exe type=interact type=own start=auto displayname="Servicio_DTL"
Decir que los servicios se almacenan en el registro de Windows (regedit), en la siguiente clave:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services

Para eliminar un servicio de Windows podremos hacerlo sencillamente con el mismo comando, de forma que quede una eliminación limpia de la siguiente manera:
sc delete nombreServicio
De modo que en el ejemplo anterior sería: sc delete DaemonToolsLite
Y finalmente podremos verificar la clave del registro asociada si se eliminó correctamente (que es lo más probable y lo que debería de suceder), en caso de que no, la eliminaremos manualmente.

Espero que de nuevo esta información os resulte útil alguna vez.
Para más información del comando SC.exe, está disponible en: http://technet.microsoft.com/en-us/library/bb490995.aspx.
Más información también en este artículo oficial de Microsoft: https://support.microsoft.com/es-es/kb/251192

Saludos!

0 Comentarios :

Publicar un comentario

Entradas Relacionadas