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!

16 agosto, 2013

Crear servicios de Windows con Process Hacker

Probando algunos y nuevos task managers, de nuevo me reencontré con Process Hacker del que ya había hablado, volviendo a investigarlo un poco más a fondo he visto que se pueden crear servicios para Windows de algún proceso o fichero ejecutable (.exe) e incluso añadirle parámetros después path.

[1] - Una vez descargemos e instalamos Process Hacker de forma gratuita. Lo ejecutamos y nos vamos a la opción de la barra de herramientas: Tools > Create service... 

Figura 1: Creando servicio para Windows con Process Hacker

[2] - Se nos abrirá una ventana para poder crear el nombre, descripción, tipo, path, etc... y más datos del servicio a crear.
En este caso y como ejemplo, voy a seleccionar un fichero .exe de la conocida herramienta de montar imágenes .iso y otras: Daemon Tools Lite.

Figura 2: Cubriendo campos para la creación del servicio, en este caso con Daemon Tools Lite

[3] - Vemos como se nos crea el servicio y se nos refleja en el task manager de Windows y también en la consola services.msc.

Figura 3: Servicio de prueba en el que aparece en el administrador de tareas de Windows "DTHelp_prueba".

También, como sería lo normal, dicho servicio sale creado y podemos administrarlo como uno más en la consola de administración de servicios, services.msc

Figura 4: En la consola de administración de servicios (services.msc), figura el servicio en cuestión y podemos ir las propiedades de este.

[4] - En caso de querer borrar o eliminar por completo el servicio, basta con hacerlo a través de nuevo con Process Hacker. Botón derecho sobre el servicio > Delete.

Figura 5: Eliminación a través de Process Hacker del servicio creado como prueba.

Espero que alguno le sea de utilidad esto, que en alguna ocasión puede serlo ya que no hay mucha información al respecto sobre esto.

También puedes consultar: Crear servicios de Windows con SC [Service Controller]

Saludos!
Entradas Relacionadas