¿Instalar un servicio de Windows usando un símbolo del sistema de Windows?

323

Quiero instalar un servicio de Windows usando un símbolo del sistema de Windows (no el símbolo del sistema de Visual Studio).

¿Cómo hago esto?

Vikash Pandey
fuente

Respuestas:

517

Vaya a installutil.exe en su carpeta .net (para .net 4 es C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 por ejemplo) y utilícelo para instalar su servicio, de esta manera:

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\installutil.exe" "c:\myservice.exe"
hcb
fuente
35
Si es el servicio compilado x64, use "C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ installutil.exe".
nme
20
Me sale un error extraño. Ningún instalador público con RunInstallerAttribute. Sí, se pudo encontrar el atributo en el ensamblado .exe. Eliminar el archivo InstallState porque no hay instaladores
Nick
1
Hola, probé esta solución pero está dando una excepción como "... archivo no encontrado o una de sus dependencias" Por favor ayuda.
ShaileshDev
Para todos los que tienen el mismo problema que todos estos y yo: ya no es necesario poner todo el camino en él. un simple installutil.exe "C: \ YourProject.exe" es suficiente.
Cataklysim
1
@Cataklysim Debe usar la ruta completa, a menos que la haya agregado a la variable de entorno de ruta.
BluE
211

No hay nada malo con el comando SC Create. Solo necesitas saber los argumentos correctos:

SC CREATE "MySVC" binpath= "D:\Me\Services\MySVC\MySVC.exe"
Sid
fuente
27
Esta es la única respuesta que hace referencia a la forma oficial de instalar / modificar / eliminar un servicio. Además, esto no depende de que .NET Framework esté instalado y funciona con cualquier tipo de archivo, no solo con binarios .NET.
Alejandro
77
Sí, es por eso que me encantó este enfoque y siempre lo aconsejo, ya que todo el trabajo debe hacerse en el exe que puede pertenecer a cualquier versión .net fw.
Sid
1
Vale la pena señalar que este comando solo está disponible para Windows Server (y algunas versiones anteriores de Windows). Win 10 también tiene un sccomando, pero es algo diferente, no se puede usar para registrar servicios.
Capitán Dashenka el
44
Tenga en cuenta que el espacio después de "binpath =" es imprescindible. @ParamvirSinghKarwal
Urk
1
Si usa powershell para ejecutar este comando, tenga en cuenta que SC es un alias para Set-Content. Escribir SC.exe lo arreglará.
Jesper Riemer Andersen
84

Si el nombre del directorio tiene un espacio como c:\program files\abc 123, entonces debe usar comillas dobles alrededor de la ruta.

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

Instalar el servicio de Windows desde el símbolo del sistema

Hace las cosas mucho más fáciles si configura un archivo bat como el siguiente,

Por ejemplo, para instalar un servicio, cree un "myserviceinstaller.bat" y " Ejecutar 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 el servicio,

Simplemente agregue -u al 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
fuente
16

Realice lo siguiente:

  1. Inicie el símbolo del sistema (CMD) con derechos de administrador.
  2. Tipo c:\windows\microsoft.net\framework\v4.0.30319\installutil.exe [your windows service path to exe]
  3. Presione returny eso es todo!

Es importante abrir con derechos de administrador; de lo contrario, puede encontrar errores que no tienen sentido. Si obtiene alguno, compruebe que lo ha abierto con derechos de administrador primero.

Para abrir con derechos de administrador , haga clic con el botón derecho en 'Símbolo del sistema' y seleccione 'Ejecutar como administrador'.

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

Base33
fuente
11

Instalar servicio: -

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

Desinstalar servicio: -

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

Debo agregar un punto más en este hilo. Para instalar / desinstalar la 64-bitversión de ensamblajes, se debe usar la 64-bitversión de la herramienta. Para instalar un servicio, el comando debe ser:

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

y para desinstalar el comando debe ser:

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

Cree un *.batarchivo al lado de su exearchivo de servicio de Windows para instalar con el siguiente contexto:

CLS
ECHO Installing My Windows Service 

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

Cree un *.batarchivo al lado de su exearchivo de servicio de Windows para desinstalarlo con el siguiente contexto:

CLS
ECHO Uninstalling My Windows Service 

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

Ejecute cada batarchivo como administrador para instalar o desinstalar su servicio de Windows.

Mohammad Dayyan
fuente
2
  1. Ejecute el símbolo del sistema de Windows como administrador
  2. pegue este código: cd C:\Windows\Microsoft.NET\Framework\v4.0.30319\para ir a la carpeta
  3. edita y ejecuta esto también: installutil C:\ProjectFolder\bin\Debug\MyProject.exe

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

Oguzhan KIRCALI
fuente
2

Abra Visual Studio y seleccione un nuevo proyecto seleccionando la Windows Serviceplantilla en la Windows Desktoppestaña. Luego copie el siguiente código en su archivo nombre_servicio.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." });
        }
    }
}

Haga clic derecho en el archivo nombre_servicio.cs y abra el diseñador del servicio. que haga clic derecho y seleccione Add Installer. que haga clic derecho serviceProcessInstaller1y cambie su valor de propiedad de Accountde Usera Local System.

Eliminar static void mainmétodo del Program.csarchivo. Que guardar y construir su proyecto.

NOTA: vaya a la bin\Ddebugcarpeta de su carpeta de proyecto. Que abrir las propiedades de su service_name.exearchivo. Que ir a la Compatibilitypestaña. Que haga clic en Change Settings For All Users.

Seleccione la opción Run this program as an administrator.

Ahora, debe abrir CommandPromt como administrador. Después de abrir, configure el directorio donde InstallUtil.exese ubica su archivo. por ejemplo: C:\Windows\Microsoft.NET\Framework64\v4.0.30319. ahora escribe el siguiente comando:

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

Nota: -i es para instalar el servicio y -u para Desinstalar.

después de -i establecer la ruta de escritura donde desea instalar su servicio.

ahora escriba el comando en CommandPromt de la siguiente manera:

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

Nota: use stoppara detener el Servicio.

Ahora, abierto ViewEventLog.exe. Seleccione Registros de Windows> Aplicación. Allí puede verificar el registro de su Servicio iniciando y deteniendo el servicio.

Karan Raiyani
fuente
2

Si está utilizando Powershell y desea instalar el servicio .NET, puede usar el módulo Install-Service . Es un contenedor para la herramienta InstalUtil.

Expone 3 comandos

  • Install-Service: invoca el  comando pathToExecutable de InstallUtil.exe
  • Install-ServiceIfNotInstalled: primero comprueba si el servicio está instalado si no realiza el método Install-Service
  • Servicio de desinstalación: desinstala el servicio. Se puede usar ServiceName de la ruta al ejecutable.

El código de este módulo se puede ver aquí.

Pawel Wujczyk
fuente
1
  1. inicie el símbolo del sistema (CMD) con derechos de administrador.
  2. Escriba c: \ windows \ microsoft.net \ framework \ v4.0.30319 \ installutil.exe [su ruta de servicio de Windows a exe]
  3. Pulse Retorno
que servidor
fuente
1

el siguiente código, instale y desinstale el Servicio,

Abra el símbolo del sistema y ejecute el programa como administrador, active el siguiente comando y presione Entrar.

Sintaxis

Instalar

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

por ejemplo: nuestra ruta 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 ejemplo: nuestra ruta InstallUtil.exe -u C: \ MyFirstService \ bin \ Debug \ MyFirstService.exe

Para obtener más ayuda, puede ver el siguiente enlace: programa de muestra

Joji Thomas Eapen
fuente
1

Siga los pasos al implementar el servicio de Windows, no pierda tiempo

1- Ejecutar el símbolo del sistema por el derecho de administrador

2- Asegúrate sobre el modo de lanzamiento al compilar en tu IDE

3- Dé un tipo al instalador de su proyecto en la vista de diseño

4- Seleccione el tipo de autenticación según el caso

5- Asegúrate de las dependencias de software: si estás usando un certificado, instálalo correctamente

6- Ve a tu consola escribe esto:

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

hay un argumento -i oculto antes de la ruta exe -i c:\que puede usar -upara desinstalar

7- Mira tu ruta .exe para que parezca un archivo de registro. Puede usar el visor de eventos para observar en la función

Hamit YILDIRIM
fuente
1

abra el símbolo del sistema del desarrollador como administrador y navegue hasta

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

Ahora usa la ruta donde está tu .exeallí

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

cuando su versión de ensamblaje y su proyecto de Visual Studio configuran Biuld en dot net 2 o 4 con la misma versión.

instalar servicio con installutilesa misma versión

si se construye en dot net 4

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

si se construye en dot net 2

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

sable tabatabaee yazdi
fuente
0

1. Desde el menú Inicio, seleccione el directorio de Visual Studio, luego seleccione Símbolo del sistema de desarrollador para VS.

2. Aparece el símbolo del sistema del desarrollador para Visual Studio.

3. Acceda al directorio donde se encuentra el archivo ejecutable compilado de su proyecto.

4. Ejecute InstallUtil.exe desde el símbolo del sistema con el ejecutable de su proyecto como parámetro

AMIR2580
fuente
-1

Debe abrir el símbolo del sistema, vaya a

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

Soft-Web Expert
fuente
-1

Abra el símbolo del sistema como administrador, vaya a su carpeta donde .exereside. Para instalar Execomo servicio

D:\YourFolderName\YourExeName /i

Para desinstalar el uso /u.

Sulaiman danés
fuente