none
Colocar um arquivo .bat como serviço RRS feed

  • Pergunta

  • Pessoal beleza?

    Eu tenho um arquivo .bat que preciso que inicie sempre que o servidor for reiniciado sem que seja preciso efetuar logon no servidor. É possível chamar esse arquivo como serviço por exemplo, definindo para iniciar automaticamente quando esta máquina for reiniciada?

    Obrigado desde já pelas respostas.

    terça-feira, 29 de outubro de 2013 17:43

Respostas

  • Estranho, testei em minha estação XP, e funcionou ok com o comando sc create nomedoservico binPath= c:\meuservico.exe 

    veja a imagem:


    ** Por favor, se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como útil" **

    • Marcado como Resposta Windows Man quarta-feira, 6 de novembro de 2013 19:27
    terça-feira, 5 de novembro de 2013 19:30

Todas as Respostas

  • terça-feira, 29 de outubro de 2013 17:52
  • Edinaldo bom dia,

    Infelizmente não. O segundo link inclusive não existe mais. Eu só preciso fazer uma correção. A máquina é um Windows XP. E eu estou precisando criar esse arquivo .bat como serviço, pois, sempre que a máquina iniciar, ele deve iniciar esse comando da bat, sem a necessidade de ter que efetuar logon na máquina.

    Obrigado desde já. 

    quinta-feira, 31 de outubro de 2013 11:15
  • Estranho, o segundo link abre aqui...

    Aviso importante para os usuários do Windows XP: Para continuar a receber atualizações de segurança para o Windows, certifique-se de que você esteja executando o Windows XP com Service Pack 3 (SP3). O suporte para o Windows XP com Service Pack 3 termina em 8 de abril de 2014. Se você estiver executando o Windows XP com Service Pack 3 (SP3) depois de o suporte terminar, para garantir o recebimento de todas as atualizações de segurança importantes para o Windows, você precisará atualizar para uma versão posterior, como, por exemplo, o Windows 8. 

    Para obter mais informações, consulte O suporte está terminando para algumas versões do Windows

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

    ID do artigo: 251192 - Exibir os produtos aos quais esse artigo se aplica.

    Collapse imageNesta página

    Collapse imageSumá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.

    Collapse imageMais 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 \\<var>computador_remoto</var>:
    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.

    Collapse imagePropriedades

    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


    ** FAVOR CLASSIFICAR O POST COMO ÚTIL OU NÃO **

    quinta-feira, 31 de outubro de 2013 11:21
  • Edinaldo,

    Obrigado por responder. Infeilzmente não estou conseguindo criar o serviço. Estou digitando o comando 

    C:\>sc create TesteServ binpath="c:\WINDOWS\system32\Teste.exe" type=own e, ele só me traz as opções de criação, que aparecem como abaixo:

    Creates a service entry in the registry and Service Database.
    SYNTAX:
    sc create [service name] [binPath= ] <option1> <option2>...
    CREATE OPTIONS:
    NOTE: The option name includes the equal sign.
     type= <own|share|interact|kernel|filesys|rec>
           (default = own)
     start= <boot|system|auto|demand|disabled>
           (default = demand)
     error= <normal|severe|critical|ignore>
           (default = normal)
     binPath= <BinaryPathName>
     group= <LoadOrderGroup>
     tag= <yes|no>
     depend= <Dependencies(separated by / (forward slash))>
     obj= <AccountName|ObjectName>
           (default = LocalSystem)
     DisplayName= <display name>
     password= <password>

    Detalhe: eu converti meu arquivo .bat em .exe usando o programinha Bat to Exe. Como estou usando como teste, a bat só faz um ping para uma máquina. No que pode estar errado isso?

    Obrigado desde já. 

    quinta-feira, 31 de outubro de 2013 12:19
  • Tenta só:

    sc create \\TesteServ binpath="c:\WINDOWS\system32\Teste.exe" 


    ** FAVOR CLASSIFICAR O POST COMO ÚTIL OU NÃO **

    quinta-feira, 31 de outubro de 2013 13:18
  • Tentei fazer isso Edinaldo, mas não funcionou...
    quinta-feira, 31 de outubro de 2013 14:30
  • e só assim?

    sc create nomedoservico binPath= c:\meuservico.exe 

    Caso não funcione, dá uma olhada em: http://www.internetcultural.org/como-adicionar-um-aplicativo-como-servico-do-windows-2.html


    ** FAVOR CLASSIFICAR O POST COMO ÚTIL OU NÃO **

    • Sugerido como Resposta Edinaldo Junior terça-feira, 5 de novembro de 2013 19:43
    sexta-feira, 1 de novembro de 2013 11:17
  • Edinaldo bom dia!

    Cara, muito obrigado pelo esforço, me ajudando com esta questão! Então, com o comando sc create realmente não funciona. Com relação ao link que me enviou, ele é para uso no Windows NT. No XP não é possível executá-lo.

    Atenciosamente,

    segunda-feira, 4 de novembro de 2013 11:30
  • Edinaldo, pessoal. boa tarde,

    Alguém tem mais alguma idéia? Não achei nada na web...será que realmente não existe a possibilidade de se criar o arquivo .bat como serviço? Ou ainda, fazer com que esse arquivo .bat, ao iniciar o computador, inicie automaticamente sem a necessidade de algum usuário efetuar logon nessa máquina?

    Obrigado à todos.


    • Editado Windows Man terça-feira, 5 de novembro de 2013 19:21 alteração
    terça-feira, 5 de novembro de 2013 19:19
  • Estranho, testei em minha estação XP, e funcionou ok com o comando sc create nomedoservico binPath= c:\meuservico.exe 

    veja a imagem:


    ** Por favor, se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como útil" **

    • Marcado como Resposta Windows Man quarta-feira, 6 de novembro de 2013 19:27
    terça-feira, 5 de novembro de 2013 19:30
  • Edinaldo tudo bem?

    Agora funcionou testando na minha máquina...acho que eu estava digitando algum parâmetro errado...

    Muito obrigado! Eu vou testar agora na máquina que eu preciso realmente fazer esse serviço subir e te informo beleza?

    Abraços!

    quarta-feira, 6 de novembro de 2013 19:27
  • Que bom que resolveu!! Boa sorte!

    ** Por favor, se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como útil" **

    quarta-feira, 6 de novembro de 2013 19:31