Cómo crear un servicio Windows con Sc.exe

Ha finalizado el soporte técnico para Windows XP

Microsoft puso fin al soporte técnico para Windows XP el 8 de abril de 2014. Este cambio ha afectado a las actualizaciones de software y las opciones de seguridad. Sepa qué significa esto en su caso y cómo puede mantenerse protegido.

El soporte técnico para Windows Server 2003 finalizó el 14 de julio de 2015

Microsoft finalizó el soporte técnico para Windows Server 2003 el 14 de julio de 2015. Este cambio ha afectado a las actualizaciones de software y las opciones de seguridad. Sepa qué significa esto en su caso y cómo puede mantenerse protegido.

Resumen
Para crear e iniciar un servicio de forma remota desde la línea de comandos, puede utilizar la herramienta SC (Sc.exe) incluida en el Kit de recursos.

Si bien puede utilizar las herramientas Netsvc.exe e Instsrv.exe para iniciar un servicio en un equipo remoto, estas herramientas no le ofrecen la posibilidad de crear un servicio de manera remota.

Nota: La herramienta Srvinstw.exe es la versión de interfaz gráfica de usuario (GUI) utilizada para crear servicios remotos. Srvinstw.exe no es una herramienta de línea de comandos.
Más información
Puede utilizar Sc.exe como ayuda para desarrollar servicios para Windows. Sc.exe, que se incluye en el Kit de recursos, implementa llamadas a todas las funciones de la interfaz de programación de aplicaciones (API) de control de servicios de Windows. Puede establecer los parámetros de estas funciones si los especifica en la línea de comandos. Sc.exe también muestra el estado de los servicios y recupera los valores almacenados en los campos de estructura de estado. Asimismo, la herramienta le permite especificar el nombre de un equipo remoto de forma que pueda llamar a las funciones de API de los servicios o ver las estructuras de estado de servicio en el equipo remoto.

Sc.exe también le permite llamar a cualquiera de las funciones de API de control de servicios y modificar cualquier parámetro desde la línea de comandos. La ventaja de ello es que ofrece una forma cómoda de crear o configurar la información de servicios en el Registro y en la base de datos del Administrador de control de servicios. No es necesario configurar el servicio creando manualmente entradas en el Registro y reiniciando después el equipo para forzar que el Administrador de control de servicios actualice su base de datos.

Sc.exe utiliza la sintaxis siguiente:

Sintaxis1 (utilice Sintaxis1 para ejecutar Sc.exe)
sc [Servername] Command Servicename [Optionname= Optionvalue...]
Sintaxis2 (utilice Sintaxis2 para mostrar información de Ayuda, excepto para el comando query)
sc [comando]

Parámetros

  • Servername
    Opcional. Especifica el nombre del servidor cuando desea ejecutar los comandos en un equipo remoto. El nombre debe empezar con dos caracteres de barra diagonal inversa (\) (por ejemplo, \\miServidor). Para ejecutar Sc.exe en el equipo local, no suministre este parámetro.
  • Comando
    Especifica el comando sc. Tenga en cuenta que muchos de los comandos sc requieren tener privilegios administrativos en el equipo especificado. Sc.exe acepta los comandos siguientes:
    Config
    Cambia la configuración de un servicio (persistente).

    Continue
    Envía una solicitud de control de continuar a un servicio.

    Control
    Envía un control a un servicio.

    Create
    Crea un servicio (lo agrega al Registro).

    Delete
    Elimina un servicio (del Registro).

    EnumDepend
    Enumera dependencias de servicios.

    GetDisplayName
    Obtiene el nombre para mostrar de un servicio.

    GetKeyName
    Obtiene el nombre de clave de un servicio.

    Interrogate
    Envía una solicitud de control de interrogar a un servicio.

    Pause
    Envía una solicitud de control de pausa a un servicio.

    qc
    Consulta la configuración del servicio. Para obtener información detallada al respecto, consulte la sección de referencia, "SC QC".

    Query
    Consulta el estado de un servicio o enumera el estado de los tipos de servicios. Para obtener información detallada al respecto, consulte la sección de referencia, "SC QUERY".

    Start
    Inicia un servicio.

    Stop
    Envía una solicitud de control de detención a un servicio.
  • Servicename
    Especifica el nombre asignado a la clave de servicio en el Registro. Tenga en cuenta que es distinto que el nombre para mostrar (que es lo que ve con el comando net start y con la herramienta Servicios del Panel de control. Sc.exe utiliza el nombre de clave del servicio como identificador principal del servicio.
  • Optionname
    Los parámetros Optionname y Optionvalue le permiten especificar los nombres y los valores de los parámetros de comandos opcionales. Tenga en cuenta que no hay ningún espacio en blanco entre Optionname y el signo igual. Puede suministrar ninguno, uno o más pares de nombre y valor de parámetro.
  • Optionvalue
    Especifica el valor del parámetro indicado por Optionname. El intervalo de valores válidos suele estar restringido para cada parámetro Optionname. Para ver una lista de los valores disponibles, solicite Ayuda para cada comando.
Muchos de los comandos requieren tener privilegios de Administrador. Asegúrese de que es un administrador del equipo donde se está llevando a cabo el desarrollo.

El comando sc create crea una entrada para el servicio en el Registro y en la base de datos del Administrador de control de servicios.

Sintaxis
sc [Servername] create Servicename [Optionname= Optionvalue...

Parámetros

  • Servername
    Opcional. Especifica el nombre del servidor cuando desea ejecutar los comandos en un equipo remoto. El nombre debe empezar con dos caracteres de barra diagonal inversa (por ejemplo, \\miServidor). Para ejecutar SC en el equipo local, no suministre este parámetro.
  • Servicename
    Especifica el nombre asignado a la clave del servicio en el Registro. Tenga en cuenta que es distinto que el nombre para mostrar (que es lo que ve con net start y con la herramienta Servicios del Panel de control). Sc.exe utiliza el nombre de clave del servicio como identificador principal del servicio.
  • Optionname
    Los parámetros Optionname y Optionvalue le permiten especificar los nombres y los valores de los parámetros opcionales. Tenga en cuenta que no hay ningún espacio en blanco entre Optionname y el signo igual. Puede suministrar ninguno, uno o más pares de nombre y valor de parámetro. El comando sc query acepta los valores siguientes:OptionnameOptionvalue
    type=own, share, interact, kernel, filesys
    Tipo de servicio que desea crear. Entre los valores de opción se incluyen los tipos utilizados por los controladores.
    (valor predeterminado = share)

    start=boot, system, auto, demand, disabled
    Tipo de inicio del servicio. Entre los valores de opción se incluyen los tipos utilizados por los controladores.
    (valor predeterminado = demand)

    error=normal, severe, critical, ignore
    Gravedad del error si el servicio no se inicia al iniciar el equipo.
    (valor predeterminado = normal)

    binPath=(cadena)
    Nombre de ruta de acceso al archivo binario del servicio. No hay ningún valor predeterminado para este parámetro. Se debe suministrar esta cadena.

    group=(cadena)
    Nombre del grupo del que es miembro este servicio. La lista de grupos se almacena en el Registro bajo ServiceGroupOrder.
    (valor predeterminado = nothing)

    tag=(cadena)
    Si esta cadena se establece en "yes", Sc.exe obtiene un TagId de la llamada a CreateService; sin embargo, Sc.exe no muestra la etiqueta.
    (valor predeterminado = nothing)

    depend=(cadena separada por espacios)
    Nombres de los servicios o los grupos que deben iniciarse antes que este servicio.

    obj=(cadena)
    Nombre de la cuenta en la que se ejecuta el servicio. Para los controladores, es el nombre de objeto del controlador de Windows.
    (valor predeterminado = LocalSystem)

    DisplayName=(cadena)
    Una cadena que los programas de interfaz de usuario pueden utilizar para identificar el servicio.

    password=(cadena)
    Una cadena de contraseña. Es necesario si se utiliza una cuenta distinta de LocalSystem.
Optionvalue
Especifica el valor del parámetro indicado por Optionname. Consulte la referencia de Optionname para ver una lista de los valores aceptados. Cuando se va a introducir una cadena, el uso de comillas vacías significa que se va a pasar una cadena vacía.Tenga en cuenta que no hay ningún espacio en blanco entre OptionValue y el signo igual.

Nota: El comando sc create realiza las operaciones de la función de API CreateService.

En el ejemplo siguiente se crea una entrada del Registro para el servicio denominado "NuevoServicio" en el equipo \\equipoRemoto:
sc \\remotecomputer create newservice binpath= c:\nt\system32\newserv.exe
Nota: En Windows 2000, Windows XP, Windows Server 2003, Windows Vista y Windows Server 2008, el elemento binpath se localiza en C:\Windows\System32\Newserv.exe.

Este servicio se crea como un WIN32_SHARE_PROCESS con un tipo de inicio SERVICE_DEMAND_START de manera predeterminada. No tiene ninguna dependencia y se ejecuta en el contexto de seguridad LocalSystem.

En el ejemplo siguiente se crea el servicio en el equipo local como un servicio de inicio automático que se ejecuta en su propio proceso. Tiene dependencias en el grupo TDI y en el servicio NetBIOS. Tenga en cuenta que debe agregar comillas alrededor de la lista de dependencias separadas por espacios en blanco.
sc create newservice binpath= c:\nt\system32\newserv.exe type= own start= auto depend= "+tdi netbios"
Nota: En Windows 2000, Windows XP, Windows Server 2003, Windows Vista y Windows Server 2008, el elemento binpath se localiza en C:\Windows\System32\Newserv.exe.

Para obtener más detalles acerca de la herramienta Sc.exe, consulte el documento Sc-dev.txt del Kit de recursos. Este documento describe Sc.exe en más detalle.
Nota: es un artículo de "PUBLICACIÓN RÁPIDA" creado directamente por la organización de soporte técnico de Microsoft. La información aquí contenida se proporciona como está, como respuesta a problemas que han surgido. Como consecuencia de la rapidez con la que lo hemos puesto disponible, los materiales podrían incluir errores tipográficos y pueden ser revisados en cualquier momento sin previo aviso. Vea las Condiciones de uso para otras consideraciones
Propiedades

Id. de artículo: 251192 - Última revisión: 06/30/2016 09:04:00 - Revisión: 1.0

Microsoft Windows NT Server 3.51, Microsoft Windows NT Server 4.0 Standard Edition, Microsoft Windows 2000 Server, Microsoft Windows 2000 Advanced Server, Microsoft Windows 2000 Professional Edition, Microsoft Windows Server 2003, Datacenter Edition (32-bit x86), Microsoft Windows Server 2003, Datacenter Edition for Itanium-Based Systems, Microsoft Windows Server 2003, Datacenter x64 Edition, Microsoft Windows Server 2003, Enterprise x64 Edition, Microsoft Windows Server 2003, Enterprise Edition (32-bit x86), Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems, Microsoft Windows Server 2003, Standard x64 Edition, Microsoft Windows Server 2003, Standard Edition (32-bit x86), Windows Vista Home Basic, Windows Vista Home Basic N, Windows Vista Home Basic N 64-bit Edition, Windows Vista Business, Windows Vista Business 64-bit edition, Windows Vista Business N, Windows Vista Business N 64-bit Edition, Windows Vista Home Premium, Windows Vista Home Basic 64-bit edition, Windows Vista Home Premium 64-bit edition, Windows Vista Ultimate, Windows Vista Ultimate 64-bit edition, Microsoft Windows XP Home Edition, Microsoft Windows XP Professional, Windows Server 2008 Standard, Windows Server 2008 Enterprise, Windows Server 2008 Datacenter

  • kbhowto kbexpertiseinter kbinfo KB251192
Comentarios