# Servicio de Windows

Un servicio de Windows es un programa de ordenador que funciona en segundo plano. Es similar en concepto a un Daemon (informática). Un servicio de Windows debe ajustarse a las normas y protocolos de interfaz del Service Control Manager, el componente responsable de la gestión de servicios de Microsoft Windows.
Los servicios de Windows se pueden configurar para comenzar cuando se inicia el sistema operativo y ejecutarse en segundo plano mientras se ejecuta el sistema operativo. Alternativamente, se pueden iniciar manualmente o por un evento. Los sistemas operativos Windows incluyen numerosos servicios que se ejecutan en el contexto de tres cuentas de usuario: sistema, servicio de red y servicio local. Estos componentes de Windows a menudo se asocian con procesos de host para servicios de Windows. Debido a que los servicios de Windows funcionan en el contexto de sus propias cuentas de usuario dedicadas, pueden operar cuando un usuario no ha iniciado sesión.
Antes de Windows Vista, los servicios instalados como un "servicio interactivo" podrían interactuar con Windows de escritorio y mostrar una interfaz gráfica de usuario. En Windows Vista, sin embargo, los servicios interactivos están en desuso y puede que no funcione correctamente, como resultado del endurecimiento de servicios de Windows.

## Administración

Los administradores de Windows pueden gestionar los servicios a través de:
* El complemento de Servicios (que se encuentra en Herramientas administrativas en el Panel de Control de Windows).
* Sc.exe
* Windows PowerShell

### Complemento de Servicios

El complemento de Servicios, construido sobre la Microsoft Management Console, puede conectarse al equipo local o un equipo remoto de la red, lo que permite a los usuarios:
* Ver una lista de servicios instalados junto con el nombre del servicio, descripciones y configuración.
* Iniciar, detener, pausar o reiniciar los servicios.
* Especificar los parámetros de servicio, en su caso.
* Cambiar el tipo de inicio. Tipos de inicio aceptables incluyen:
** Automático: el servicio comienza en el inicio del sistema.
** Automático (en diferido): el servicio se inicia poco después de que el sistema haya terminado de arrancar. Esta opción se introdujo en Windows Vista en un intento de reducir el tiempo de arranque en el escritorio. Sin embargo, no todos los servicios soportan el inicio con retraso.
** Manual: el servicio se inicia sólo cuando se le llame explícitamente.
** Desactivado: El servicio está deshabilitado. No va a funcionar.
* Cambiar el contexto de la cuenta de usuario en el que opera el servicio.
* Configurar las acciones de recuperación que se deben tomar si un servicio falla.
* Inspeccionar las dependencias de servicio, descubrir qué servicios o controladores de dispositivo dependen de un determinado servicio o sobre qué servicio dependen los servicios o controladores de dispositivo.
* Exportar la lista de servicios como un archivo de texto o como un archivo CSV.

### Sc.exe

La pareja en la línea de comandos del complemento de Servicios es sc.exe, la utilidad "de control de servicios". Esta utilidad se incluye con Windows XP y posteriores versiones.
La esfera de acción de Sc.exe se limita al equipo local. Sin embargo, a partir de Windows Server 2003, Sc.exe no sólo puede hacer todo lo que hace el complemento Servicios en sí, sino que también puede instalar y desinstalar los servicios.

### Windows PowerShell

Windows PowerShell puede gestionar intrínsecamente servicios de Windows a través de los siguientes cmdlets:
* Get-Service
* New-Service
* Restart-Service
* Resume-Service
* Set-Service
* Start-Service
* Stop-Service
* Suspend-Service

### Otras herramientas de gestión

Además del trío compuesto por el complemento, sc.exe y PowerShell, Windows también incluye componentes que pueden hacer un subconjunto de lo que el trío puede hacer. Net.exe puede iniciar, detener, pausar o reanudar un servicio de Windows. En Windows Vista y versiones posteriores, el Administrador de tareas puede mostrar una lista de servicios instalados y comenzarlos o detenerlos. MSConfig puede activar o desactivar (véase la descripción hecha anteriormente sobre de tipos de inicio anterior) servicios de Windows.

## Desarrollo

Un servicio de Windows se crea usando herramientas de desarrollo como Microsoft Visual Studio o Embarcadero Delphi. Con el fin de que sea un servicio de Windows, se debe escribir un programa de una manera tal que puede manejar los mensajes de inicio, detección y pausa del Service Control Manager (Administrador de Control de Servicios). el Service Control Manager es un componente de Windows que se encarga de iniciar y detener servicios.
El Kit de recursos de Windows para Windows NT 3.51, Windows NT 4.0 y Windows 2000 proporciona herramientas para controlar el uso y registro de servicios: Srvany.exe actúa como un contenedor de servicio para manejar la interfaz esperada de un servicio (por ejemplo, manejar service_start y responder en algún momento más adelante con service_started o service_failed) y permitir que cualquier ejecutable o script pueda ser configurado como un servicio. sc.exe (Control Service) permite que nuevos servicios se instalen, inicien, detengan o desinstalen.