Instalar um serviço do Windows usando um prompt de comando do Windows?

323

Desejo instalar um serviço do Windows usando um prompt de comando do Windows (não o prompt de comando do Visual Studio).

Como eu faço isso?

Vikash Pandey
fonte

Respostas:

517

Navegue até o installutil.exe na pasta .net (para o .net 4 é C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319, por exemplo) e use-o para instalar o serviço, assim:

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\installutil.exe" "c:\myservice.exe"
hcb
fonte
35
Se for o serviço compilado x64, use "C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ installutil.exe".
nme
20
Eu recebo um erro estranho. Nenhum instalador público com o RunInstallerAttribute. O atributo Sim pode ser encontrado no assembly .exe. Remova o arquivo InstallState porque não há instaladores
Nick
1
Oi, eu tentei esta solução, mas está dando exceção como "... arquivo não encontrado ou uma de suas dependências". Por favor ajude.
ShaileshDev
Para todos com o mesmo problema que todos estes e eu: você não precisa mais colocar todo o caminho nele. um installutil.exe simples "C: \ YourProject.exe" é suficiente.
Cataklysim
1
@Cataklysim Você precisa usar o caminho completo, a menos que o tenha adicionado à variável de ambiente do caminho.
BluE 8/08/19
211

Nada de errado com o comando SC Create. Você só precisa conhecer os argumentos corretos:

SC CREATE "MySVC" binpath= "D:\Me\Services\MySVC\MySVC.exe"
Sid
fonte
27
Essa é a única resposta que faz referência à maneira oficial de instalar / modificar / excluir um serviço. Além disso, isso não depende da instalação do .NET Framework e funciona com qualquer tipo de arquivo, não apenas com os binários do .NET.
Alejandro
7
Sim ... é por isso que eu amei essa abordagem e sempre a aconselho, pois todo o trabalho precisa ser feito no exe, que pode pertencer a qualquer versão .net fw.
Sid
1
É importante notar que este comando está disponível apenas para o servidor Windows (e algumas versões mais antigas do Windows). O Win 10 também possui um sccomando, mas é algo diferente, não pode ser usado para registrar serviços.
Captain Dashenka 7/10/19
4
Observe que o espaço após "binpath =" é imperativo. @ParamvirSinghKarwal
Urk
1
Se estiver usando o PowerShell para executar este comando, observe que SC é um alias para Set-Content. Escrever o SC.exe corrigirá isso.
Jesper Riemer Andersen
84

Se o nome do diretório tiver um espaço como c:\program files\abc 123, você deverá usar aspas duplas no caminho.

installutil.exe "c:\program files\abc 123\myservice.exe"

Instalar o serviço do Windows no prompt de comando

Isso facilita muito as coisas se você configurar um arquivo bat como o seguinte,

Por exemplo, para instalar um serviço, crie um "myserviceinstaller.bat" e " Executar como Administrador "

@echo off
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319
installutil.exe "C:\Services\myservice.exe"

if ERRORLEVEL 1 goto error
exit
:error
echo There was a problem
pause

para desinstalar o serviço,

Basta adicionar -u ao comando installutil.

cd C:\Windows\Microsoft.NET\Framework\v4.0.30319

C:\Windows\Microsoft.NET\Framework\v4.0.30319\installutil.exe -u "C:\Services\myservice.exe"
Dhanuka777
fonte
16

Faça o seguinte:

  1. Inicie o prompt de comando (CMD) com direitos de administrador.
  2. Tipo c:\windows\microsoft.net\framework\v4.0.30319\installutil.exe [your windows service path to exe]
  3. Pressione returne é isso!

É importante abrir com direitos de administrador, caso contrário, você poderá encontrar erros que não fazem sentido. Se você tiver algum, verifique se você o abriu primeiro com direitos de administrador!

Para abrir com direitos de administrador , clique com o botão direito do mouse em 'Prompt de Comando' e selecione 'Executar como administrador'.

Fonte: http://coderamblings.wordpress.com/2012/07/24/how-to-install-a-windows-service-using-the-command-prompt/

Base33
fonte
11

Serviço de instalação: -

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe" 
"C:\Services\myservice.exe"

Desinstalar o Serviço: -

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe" -u "C:\Services\myservice.Service.exe"
Kaushik AppzyTech
fonte
6

Devo adicionar mais um ponto nesta discussão. Para instalar / desinstalar a 64-bitversão dos assemblies, deve-se usar a 64-bitversão da ferramenta. Para instalar um serviço, o comando deve ser:

"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe"
"C:\YourFolder\YourService.exe"

e para desinstalar o comando deve ser:

"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe" -u
"C:\YourFolder\YourService.exe"
MKR
fonte
4

Crie um *.batarquivo ao lado do seu exearquivo de serviço do Windows para instalar no seguinte contexto:

CLS
ECHO Installing My Windows Service 

START %windir%\Microsoft.NET\Framework\v4.0.30319\installutil.exe "%~d0%~p0\YourWindowsServiceExeName.exe"

Crie um *.batarquivo ao lado do exearquivo de serviço do Windows para desinstalar com o seguinte contexto:

CLS
ECHO Uninstalling My Windows Service 

START %windir%\Microsoft.NET\Framework\v4.0.30319\installutil.exe -u "%~d0%~p0\YourWindowsServiceExeName.exe"

Execute cada um dos batarquivos como Admin para instalar ou desinstalar o serviço do Windows.

Mohammad Dayyan
fonte
2
  1. Execute o prompt de comando do Windows como administrador
  2. cole este código: cd C:\Windows\Microsoft.NET\Framework\v4.0.30319\para ir para a pasta
  3. edite e execute isso também: installutil C:\ProjectFolder\bin\Debug\MyProject.exe

Nota: Para desinstalar:installutil /u C:\ProjectFolder\bin\Debug\MyProject.exe

Oguzhan KIRCALI
fonte
2

Abra o Visual studio e selecione um novo projeto, selecionando o Windows Servicemodelo na Windows Desktopguia. Em seguida, copie o código a seguir no arquivo service_name.cs.

using System.Diagnostics;
using System.ServiceProcess;
namespace TimerService
{
    public partial class Timer_Service : ServiceBase
    {
        public Timer_Service()
        {
            InitializeComponent();
        }
        static void Main()
        {
            if (System.Diagnostics.Debugger.IsAttached)
            {
                Timer_Service service = new Timer_Service();
                service.OnStart(null);
            }
            else
            {
                ServiceBase[] ServicesToRun;
                ServicesToRun = new ServiceBase[]
                {
                    new Timer_Service()
                };
                ServiceBase.Run(ServicesToRun);
            }
        }
        protected override void OnStart(string[] args)
        {
            EventLog.WriteEvent("Timer_Service", new EventInstance(0, 0, EventLogEntryType.Information), new string[] { "Service start successfully." });
        }
        protected override void OnStop()
        {            
            EventLog.WriteEvent("Timer_Service", new EventInstance(0, 0, EventLogEntryType.Information), new string[] { "Service stop successfully." });
        }
    }
}

Clique com o botão direito do mouse no arquivo service_name.cs e abra o designer do serviço. clique com o botão direito e selecione Add Installer. clique com o botão direito do mouse serviceProcessInstaller1e altere o valor da propriedade de Accountde Userpara Local System.

Remova o static void mainmétodo do Program.csarquivo. Em seguida, salve e construa seu projeto.

NOTA: vá para a bin\Ddebugpasta da sua pasta do projeto. Em seguida, abra Propriedades do seu service_name.exearquivo. Do que ir para a Compatibilityguia. Do que clicar Change Settings For All Users.

Selecione a opção Run this program as an administrator.

Agora, você precisa abrir o CommandPromt como administrador. Depois de aberto, defina o diretório para onde seu InstallUtil.exearquivo está colocado. por ex: C:\Windows\Microsoft.NET\Framework64\v4.0.30319. agora escreva o seguinte comando:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319>InstallUtil.exe -i C:\TimerService\TimerService\bin\Debug\TimerService.exe

Nota: -i é para instalar o serviço e -u para Desinstalar.

depois de -i defina o caminho onde você deseja instalar seu serviço.

agora escreva o comando no CommandPromt da seguinte maneira:

C:\TimerService\TimerService\bin\Debug>net start service_name

Nota: use stoppara interromper o serviço.

Agora abra ViewEventLog.exe. Selecione Logs do Windows> Aplicativo. Lá, você pode verificar o log do seu serviço iniciando e parando o serviço.

Karan Raiyani
fonte
2

Se você estiver usando o Powershell e quiser instalar o serviço .NET, poderá usar o módulo Install-Service . É um invólucro para a ferramenta InstalUtil.

Expõe 3 comandos

  • Install-Service - chama o  comando InstallUtil.exe pathToExecutable
  • Install-ServiceIfNotInstalled - primeiro verifica se o serviço está instalado, se não executar o método Install-Service
  • Desinstalar serviço - ele desinstala o serviço. ServiceName do caminho para o executável pode ser usado.

O código deste módulo pode ser visto aqui

Pawel Wujczyk
fonte
1
  1. inicie o prompt de comando (CMD) com direitos de administrador.
  2. Digite c: \ windows \ microsoft.net \ framework \ v4.0.30319 \ installutil.exe [o caminho do serviço do Windows para o exe]
  3. Pressione retorno
qual servidor
fonte
1

o código a seguir, instale e desinstale o Serviço,

Abra o prompt de comando e execute o programa como administrador, ative o comando abaixo e pressione enter.

Sintaxe

Para instalar

C:\windows\microsoft.net\framework\v4.0.30319>InstallUtil.exe + Your copied path + \your service name + .exe

por exemplo: Nosso caminho InstallUtil.exe C: \ MyFirstService \ bin \ Debug \ MyFirstService.exe

Para desinstalar

 C:\windows\microsoft.net\framework\v4.0.30319>InstallUtil.exe -u + Your copied path + \your service name + .exe

por exemplo: Nosso caminho InstallUtil.exe -u C: \ MyFirstService \ bin \ Debug \ MyFirstService.exe

para obter mais ajuda, você pode ver o seguinte link: programa de amostra

Joji Thomas Eapen
fonte
1

Siga as etapas ao implantar o Serviço Windows, não perca tempo

1- Execute o prompt de comando pelo administrador

2- Garanta o modo de liberação ao compilar no seu IDE

3- Dê um tipo ao seu instalador do projeto no design view

4- Selecione o tipo de autenticação de acordo com o caso

5- Garantir as dependências do software: se você estiver usando um certificado, instale-o corretamente

6- Vá ao seu console e escreva isto:

C:\Windows\Microsoft.NET\Framework\yourRecentVersion\installutil.exe c:\yourservice.exe

existe um argumento -i oculto antes do caminho exe que -i c:\você pode usar -upara desinstalar

7- Procure no seu caminho .exe para parecer um arquivo de log. Você pode usar o visualizador de eventos para observar no recurso

Hamit YILDIRIM
fonte
1

abra o prompt de comando do desenvolvedor como administrador e navegue até

cd C:\Windows\Microsoft.NET\Framework\v4.0.30319

Agora usar o caminho onde está o seu .exe

InstallUtil "D:\backup\WindowsService\WindowsService1\WindowsService1\obj\Debug\TestService.exe"
Arvind Chourasiya
fonte
0

quando sua versão de montagem e seu Visual studio projetam a configuração Biuld no dot net 2 ou 4, instalam-se com a mesma versão.

instalar serviço com installutila mesma versão

se construir na rede de pontos 4

Tipo c:\windows\microsoft.net\framework\v4.0.30319\installutil.exe

se construir na rede de pontos 2

Tipo c:\windows\microsoft.net\framework\v2.0.11319\installutil.exe

sabre tabatabaee yazdi
fonte
0

1.No menu Iniciar, selecione o diretório do Visual Studio e selecione Prompt de Comando do Desenvolvedor para VS.

2.O prompt de comando do desenvolvedor para o Visual Studio é exibido.

3. Acesse o diretório em que o arquivo executável compilado do seu projeto está localizado.

4. Execute o InstallUtil.exe no prompt de comando com o executável do seu projeto como parâmetro

AMIR2580
fonte
-1

Você deve abrir o prompt de comando, vá para

C:\windows\microsoft.net\framework\v4.0.30319\InstallUtil.exe -i ".EXE file of window service"

Especialista em Soft-Web
fonte
-1

Abra o prompt de comando como administrador, vá para a pasta onde .exereside. Para instalar Execomo serviço

D:\YourFolderName\YourExeName /i

Para desinstalar o uso /u.

Sulaiman dinamarquês
fonte