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

Traduções de Artigos Traduções de Artigos
Artigo: 251192 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Para criar e iniciar remotamente um serviço a partir da linha de comandos, pode utilizar a ferramenta SC (Sc.exe) incluída no Resource Kit.

Embora possa utilizar as ferramentas Netsvc.exe e Instsrv.exe para iniciar um serviço num computador remoto, estas ferramentas não lhe permitem criar remotamente um serviço.

NOTA: a ferramenta Srvinstw.exe é a versão da interface gráfica do utilizador (GUI, graphical user interface) utilizada para criar serviços remotos. A ferramenta Srvinstw.exe não é uma ferramenta da linha de comandos.

Mais Informação

Pode utilizar o Sc.exe para ajudar a desenvolver os serviços para o Windows. O Sc.exe, que é fornecido no Resource Kit, implementa chamadas para todas as funções da interface de programação de aplicações (API, application programming interface) do controlo de serviços do Windows. Pode definir os parâmetros para estas funções especificando-os na linha de comandos. O Sc.exe também apresenta o estado do serviço e obtém os valores armazenados nos campos de estrutura de estado. A ferramenta também lhe permite especificar o nome de um computador remoto para que possa chamar as funções da API de serviço ou visualizar as estruturas de estado do serviço no computador remoto.

O Sc.exe também lhe permite chamar qualquer uma das funções da API do controlo de serviços e mudar qualquer um dos parâmetros da linha de comandos. A vantagem é ser uma forma eficaz de criar ou configurar as informações do serviço no registo e a base de dados do Gestor de controlo de serviços (Service Control Manager). Não precisa de configurar o serviço criando manualmente entradas no registo e reiniciando o computador para forçar o Gestor de controlo de serviços (Service Control Manager) a actualizar a respectiva base de dados.

O Sc.exe utiliza a seguinte sintaxe:

Sintaxe1 (utilize Sintaxe1 para executar o Sc.exe)
sc [Nome_do_servidor] Comando Nome_do_serviço [Nome_da_opção= Valor_da_opção...]
Sintaxe2 (utilize Sintaxe2 para apresentar as informações de ajuda, excepto para o comando query)
sc [Comando]

Parâmetros

  • Nome_do_servidor
    Opcional. Especifica o nome do servidor quando pretende executar os comandos num computador remoto. O nome tem de começar com dois caracteres de barra invertida (\) (por exemplo, \\meu_servidor). Para executar o Sc.exe no computador local, não forneça este parâmetro.
  • Comando
    Especifica o comando sc. Note que muitos dos comandos do sc requerem privilégios administrativos no computador especificado. O Sc.exe suporta os seguintes comandos:
    Config
    Altera a configuração de um serviço (persistente).

    Continue
    Envia um pedido de controlo para continuar um serviço.

    Control
    Envia um controlo para um serviço.

    Create
    Cria um serviço (adiciona-o ao registo).

    Delete
    Elimina um serviço (do registo).

    EnumDepend
    Enumera dependências de serviço.

    GetDisplayName
    Obtém o nome de um serviço.

    GetKeyName
    Obtém o nome da chave de um serviço.

    Interrogate
    Envia um pedido de controlo para interrogar um serviço.

    Pause
    Envia um pedido de controlo para interromper um serviço.

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

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

    Start
    Inicia um serviço

    Stop
    Envia um pedido para parar um serviço.
  • Nome_do_serviço
    Especifica o nome atribuído à chave do serviço no registo. Note que isto é diferente do nome (que é o que vê com o comando net start e a ferramenta Serviços (Services) no Painel de controlo (Control Panel). O Sc.exe utiliza o nome da chave do serviço como o identificador primário do serviço.
  • Nome_da_opção
    Os parâmetros Nome_da_opção e Valor_da_opção permitem-lhe especificar os nomes e os valores dos parâmetros opcionais do comando. Note que não há espaço entre o Nome_da_opção e o sinal de igual. Pode fornecer um ou mais pares de nome e valor dos parâmetros opcionais ou até nenhum.
  • Valor_da_opção
    Especifica o valor do parâmetro designado pelo Nome_da_opção. O intervalo de valores válidos é muitas vezes restringido por cada Nome_da_opção. Para obter uma lista de valores disponíveis, solicite ajuda para cada comando.
Muitos dos comandos requerem privilégios de administrador. Certifique-se de que é o administrador do computador onde o desenvolvimento está a ser executado.

O comando sc create cria uma entrada do serviço no registo e na base de dados do Gestor de controlo de serviços (Service Control Manager).

Sintaxe
sc [Nome_do_servidor] create Nome_do_serviço [Nome_da_opção=Valor_da_opção...

Parâmetros

  • Nome_do_servidor
    Opcional. Especifica o nome do servidor quando pretende executar os comandos num computador remoto. O nome tem de começar com dois caracteres de barra invertida (por exemplo, \\meu_servidor). Para executar o SC no computador local, não forneça este parâmetro.
  • Nome_do_serviço
    Especifica o nome atribuído à chave do serviço no registo. Note que isto é diferente do nome, que é o que vê com net start e a ferramenta Serviços (Services) no Painel de controlo (Control Panel). O Sc.exe utiliza o nome da chave do serviço como o identificador primário do serviço.
  • Nome_da_opção
    Os parâmetros Nome_da_opção e Valor_da_opção permitem-lhe especificar os nomes e os valores de parâmetros opcionais. Note que não há espaço entre o Nome_da_opção e o sinal de igual. Pode fornecer um ou mais pares de nome e valor dos parâmetros opcionais ou até nenhum. O comando sc query suporta os seguintes valores: Nome_da_opçãoValor_da_opção
    type=own, share, interact, kernel, filesys
    Escreva o serviço que pretende criar. Os valores da opção incluem tipos utilizados por controladores.
    (predefinição = share)

    start=boot, system, auto, demand, disabled
    Tipo de início para o serviço. Os valores da opção incluem tipos utilizados por controladores.
    (predefinição = demand)

    error=normal, severe, critical, ignore
    Gravidade do erro se o serviço não for iniciado durante o arranque.
    (predefinição = normal)

    binPath=(cadeia)
    Nome do caminho para o ficheiro binário do serviço. Não existe nenhuma predefinição para este parâmetro. Esta cadeia tem de ser fornecida.

    group=(cadeia)
    Nome do grupo do qual este serviço é um membro. A lista de grupos é armazenada no registo em ServiceGroupOrder.
    (predefinição = nada)

    tag=(cadeia)
    Se esta cadeia for definida como "sim", o Sc.exe obtém um TagId da chamada CreateService, contudo, o Sc.exe não apresenta a tag.
    (predefinição = nada)

    depend=(cadeia separada por espaço)
    Nomes de serviços ou grupos que têm de ser iniciados antes deste serviço.

    obj=(cadeia)
    Nome da conta onde o serviço é executado. Para os controladores, este é o nome do objecto de controlador do Windows.
    (predefinição = LocalSystem)

    DisplayName=(cadeia)
    Uma cadeia que pode ser utilizada por programas de interface de utilizador para identificar o serviço.

    password=(cadeia)
    Uma cadeia de palavra-passe. Este é obrigatório se for utilizada uma conta diferente de LocalSystem.
Valor_da_opção
Especifica o valor do parâmetro designado pelo Nome_da_opção. Consulte a referência do Nome_da_opção para obter uma lista de valores suportados. Quando uma cadeia tiver de ser introduzida, a utilização de aspas vazias significa que uma cadeia vazia é transmitida.

NOTA: o comando sc create executa as operações da função da API CreateService.

O exemplo que se segue cria uma entrada de registo para o serviço denominado "NewService" no computador com o nome \\computadorremoto:
sc \\computadorremoto create newservice binpath= c:\nt\system32\newserv.exe
Este serviço é criado como WIN32_SHARE_PROCESS com um tipo de início SERVICE_DEMAND_START por predefinição. Não tem nenhuma dependência e é executado no contexto de segurança de LocalSystem.

O exemplo seguinte cria o serviço no computador local como um serviço de início automático que é executado no seu próprio processo. Contém dependências no grupo TDI e no serviço NetBIOS. Repare que tem de adicionar aspas à volta 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"
Para obter mais detalhes sobre a ferramenta Sc.exe, consulte o documento Sc-dev.txt no Resource Kit. Este documento descreve o Sc.exe mais detalhadamente.

Propriedades

Artigo: 251192 - Última revisão: 3 de fevereiro de 2006 - Revisão: 3.0
A informação contida neste artigo aplica-se 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
Palavras-chave: 
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