Como criar um serviço do Windows utilizando o Sc.exe

Traduções deste artigo Traduções deste artigo
ID do artigo: 251192 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sumário

Para criar e iniciar remotamente um serviço a partir da linha de comando, é possível usar a ferramenta SC (Sc.exe) incluída no Resource Kit.

Apesar de poder usar as ferramentas Netsvc.exe e Instsrv.exe para iniciar um serviço em um computador remoto, essas ferramentas não oferecem a possibilidade de criar um serviço remotamente.

Observação A ferramentas Srvinstw.exe é a versão de interface gráfica do usuário (GUI) usada para criar serviços remotos. A Srvinstw.exe não é uma ferramenta de linha de comando.

Mais Informações

É possível usar o Sc.exe no auxílio do desenvolvimento de serviços para o Windows. O Sc.exe, que é fornecido no Resource Kit, implementa chamadas para todas as funções da API (interface de programação de aplicativo) de controle de serviço do Windows. É possível definir os parâmetros para essas funções especificando-as na linha de comando. O Sc.exe também exibe o status do serviço e recupera os valores armazenados nos campos de estrutura de status. A ferramenta também permite que você especifique o nome de um computador remoto de modo que você possa chamar as funções da API de serviço ou visualizar as estruturas de status do serviço no computador remoto.

O Sc.exe também permite que você chame quaisquer funções da API de controle de serviço e varie qualquer parâmetro a partir da linha de comando. A vantagem é que ele oferece uma maneira conveniente de criar ou configurar as informações de serviço no Registro e no banco de dados do Gerenciador de controle de serviço. Não é necessário configurar o serviço criando manualmente entradas no Registro e reiniciando o computador para forçar a atualização do Gerenciador de controle de serviço e de seu banco de dados.

O Sc.exe usa a seguinte sintaxe:

Sintaxe1 (usa a Sintaxe1 para executar o Sc.exe)
sc [Servername] Command Servicename [Optionname= Optionvalue...]
Sintaxe2 (use a Sintaxe2 para exibir as informações de ajuda, exceto para o comando query)
sc [Command]

Parâmetros

  • Nome do servidor
    Opcional. Especifica o nome do servidor quando quiser executar os comandos em um computador remoto. O nome deve iniciar com duas barras (\) (por exemplo, \\ Para executar o Sc.exe no computador local, não forneça esse parâmetro.
  • Comando
    Especifica o comando sc. Observe que muitos dos comandos sc exigem privilégios administrativos no computador especificado. O Sc.exe suporta os seguintes comandos:
    Config
    Altera a configuração de um serviço (persistente).

    Continuar
    Envia uma solicitação de controle Continue para um serviço.

    Controle
    Envia um controle para um serviço.

    Criar
    Cria um serviço (adiciona-o ao Registro).

    Excluir
    Exclui um serviço (do Registro).

    EnumDepend
    Enumera dependências de serviço.

    GetDisplayName
    Obtém o DisplayName (nome de exibição) para um serviço.

    GetKeyName
    Obtém o ServiceKeyName (nome da chave do serviço) para um serviço.

    Interrogate
    Envia uma solicitação de controle Interrogate para um serviço.

    Pause
    Envia uma solicitação de controle Pause para um serviço.

    qc
    Consulta a configuração para o serviço. Para obter informações detalhadas, consulte a seção de referência, "SC QC".

    Query
    Consulta o status para um serviço ou enumera o status para tipos de serviços. Para obter informações detalhadas, consulte a seção de referência, "SC QUERY".

    Início
    Inicia um serviço

    Stop
    Envia uma solicitação Stop para um serviço.
  • Servicename
    Especifica o nome fornecido à chave Service no Registro. Observe que isso é diferente do nome de exibição (que é o que é visto com o comando net start e com a Ferramenta Serviços no Painel de controle). O Sc.exe usa o nome da chave do serviço como o identificador primário para o serviço.
  • Optionname
    Os parâmetros Optionname e Optionvalue permitem a especificação dos nomes e dos valores dos parâmetros de comando opcionais. Observe que não existe espaço entre Optionname e o sinal de igual. É possível fornecer um, mais de um ou nenhum par de nomes e de valores opcionais de parâmetro.
  • Optionvalue
    Especifica o valor para o parâmetro nomeado pelo Optionname. O intervalo de valores válido é normalmente restringido para cada Optionname. Para obter uma lista de valores válidos, solicite ajuda para cada comando.
Muitos dos comandos exigem privilégios de Administrador. Verifique se está como administrador do computador no qual o desenvolvimento está sendo realizado.

O comando sc create cria uma entrada para o serviço no Registro e no banco de dados do Gerenciador de controle de serviço.

Sintaxe
sc [Servername] criar Servicename [Optionname= Optionvalue...

Parâmetros

  • Nome do servidor
    Opcional. Especifica o nome do servidor quando quiser executar os comandos em um computador remoto. O nome deve iniciar com duas barras (\) (por exemplo, \\ Para executar o SC no computador local, não forneça esse parâmetro.
  • Servicename
    Especifica o nome fornecido à chave service no Registro. Observe que isso é diferente do nome de exibição, que é o visto com o comando net start e com a Ferramenta Serviços no Painel de controle). O Sc.exe usa o nome da chave do serviço como o identificador primário para o serviço.
  • Optionname
    Os parâmetros Optionname e Optionvalue permitem a especificação dos nomes e dos valores dos parâmetros opcionais. Observe que não existe espaço entre Optionname e o sinal de igual. É possível fornecer um, mais de um ou nenhum par de nomes e de valores opcionais de parâmetro. O comando sc query suporta os seguintes valores:OptionnameOptionvalue
    type=own, share, interact, kernel, filesys
    Tipo de serviço que deseja criar. O Optionvalues inclui tipos usados pelos drivers.
    (padrão = compartilhamento)

    start=boot, system, auto, demand, disabled
    Tipo de inicialização para o serviço. O Optionvalues inclui tipos usados pelos drivers.
    (padrão = demanda)

    error=normal, severe, critical, ignore
    Gravidade do erro se o serviço não iniciar durante a inicialização.
    (padrão = normal)

    binPath=(seqüência)
    Nome do caminho para o arquivo binário do serviço. Não existe um padrão para esse parâmetro. Essa seqüência deve ser fornecida.

    group=(seqüência)
    Nome do grupo do qual esse serviço é um membro. A lista de grupos é armazenada no Registro em ServiceGroupOrder.
    (padrão = nada)

    tag=(seqüência)
    Se essa seqüência for definida como "yes", o Sc.exe obterá um TagId da chamada CreateService. No entanto, ele não exibirá a tag.
    (padrão = nada)

    depend=(seqüência separada por espaço)
    Nomes de serviços ou grupos que devem iniciar antes de iniciar esse serviço.

    obj=(seqüência)
    Nome da conta na qual o serviço é executado. Para os drivers, esse é o nome do objeto de driver do Windows.
    (padrão = LocalSystem)

    DisplayName=(seqüência)
    Uma seqüência pode ser usada pelos programas de interface do usuário para identificar o serviço.

    password=(seqüência)
    Uma seqüência de senha. Isso é necessário se uma conta diferente de LocalSystem for usada.
Optionvalue
Especifica o valor para o parâmetro nomeado pelo Optionname. Consulte a referência do Optionname para obter uma lista de valores suportados. Quando uma cadeia de caracteres está para ser inserida, o uso de cotações vazias significa que uma cadeia de caractere vazia é transmitida. Observe que há um espaço entre OptionValue e o sinal de igual.

ObservaçãoO comando criar sc executa as operações da função de API CreateService.

O exemplo a seguir cria uma entrada do Registro para o serviço chamado "NewService" no computador chamado \\computador_remoto:
sc \\remotecomputer create newservice binpath= c:\nt\system32\newserv.exe
Observação No Windows 2000, Windows XP, Windows Server 2003, Windows Vista e Windows Server 2008, o binpath está localizado no C:\Windows\System32\Newserv.exe.

Por padrão, esse serviço é criado como um WIN32_SHARE_PROCESS com um tipo de inicialização SERVICE_DEMAND_START. Ele não possui nenhuma dependência e executa no contexto de segurança LocalSystem.

O seguinte exemplo cria o serviço no computador local como um serviço de inicialização automática que executa no seu próprio processo. Ele possui dependências no grupo TDI e no serviço NetBIOS. Observe que é necessário acrescentar aspas ao redor da lista de dependências separadas por espaço.
sc create newservice binpath= c:\nt\system32\newserv.exe type= own start= auto depend= "+tdi netbios"
Observação No Windows 2000, Windows XP, Windows Server 2003, Windows Vist e Windows Server 2008, o binpath está localizado no C:\Windows\System32\Newserv.exe.

Para obter detalhes adicionais sobre a ferramenta Sc.exe, consulte o documento Sc-dev.txt no Resource Kit. Esse documento descreve o Sc.exe detalhadamente.
Observação: este é um artigo de ?PUBLICAÇÃO RÁPIDA? criado diretamente pela organização de suporte da Microsoft. As informações aqui contidas são fornecidas no presente estado, em resposta a questões emergentes. Como resultado da velocidade de disponibilização, os materiais podem incluir erros tipográficos e poderão ser revisados a qualquer momento, sem aviso prévio. Consulte os Termos de Uso para ver outras informações.

Propriedades

ID do artigo: 251192 - Última revisão: sexta-feira, 29 de março de 2013 - Revisão: 1.0
A informação contida neste artigo aplica-se a:
  • 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
Palavras-chave: 
kbhowto kbexpertiseinter kbinfo KB251192

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com