Cómo crear un servicio de Windows usando Sc.exe

Seleccione idioma Seleccione idioma
Id. de artículo: 251192 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

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 [nombreDeServidor] Comando nombreDeServicio [nombreDeOpción = valorDeOpción...]
Sintaxis2 (utilice Sintaxis2 para mostrar información de Ayuda, excepto para el comando query)
sc [Comando]

Parámetros

  • nombreDeServidor
    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.
  • nombreDeServicio
    Especifica el nombre asignado a la clave Service 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.
  • nombreDeOpción
    Los parámetros nombreDeOpción y valorDeOpción 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 nombreDeOpción y el signo igual. Puede suministrar ninguno, uno o más pares de nombre y valor de parámetro.
  • valorDeOpción
    Especifica el valor del parámetro indicado por nombreDeOpción. El intervalo de valores válidos suele estar restringido para cada nombreDeOpción. 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 [nombreDeServidor] create nombreDeServicio [nombreDeOpción=valorDeOpción...

Parámetros

  • nombreDeServidor
    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.
  • nombreDeServicio
    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.
  • nombreDeOpción
    Los parámetros nombreDeOpción y valorDeOpción 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 nombreDeOpción 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:nombreDeOpciónvalorDeOpción
    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.
valorDeOpción
Especifica el valor del parámetro indicado por nombreDeOpción. Consulte la referencia de nombreDeOpción 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.

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 \\equipoRemoto create nuevoServicio binpath= c:\nt\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 nuevoServicio binpath= c:\nt\system32\newserv.exe type= own start= auto depend= "+tdi netbios"
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.

Propiedades

Id. de artículo: 251192 - Última revisión: viernes, 16 de junio de 2006 - Versión: 3.0
La información de este artículo se refiere a:
  • Microsoft Windows NT Server 4.0 Terminal Server
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows NT Server 3.51
  • Microsoft Windows NT Server 4.0 Standard Edition
Palabras clave: 
kbinfo KB251192

Enviar comentarios

 

Kontaktieren Sie uns, um weitere Hilfe zu erhalten

Kontaktieren Sie uns, um weitere Hilfe zu erhalten
Wenden Sie sich an den Answer Desk, um professionelle Hilfe zu erhalten.