Installare un servizio di Windows utilizzando un prompt dei comandi di Windows?

Voglio installare un servizio di Windows utilizzando un prompt dei comandi di Windows (non il prompt dei comandi di Visual Studio).

Come faccio a fare questo?

Passare a installutil.exe nella cartella .net (per .net 4 è C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 per esempio) e utilizzarlo per installare il servizio, come questo:

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\installutil.exe" "c:\myservice.exe" 

Se il nome della directory ha uno spazio come c:\program files\abc 123 , è necessario utilizzare le doppie virgolette sul percorso.

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

Installa il servizio Windows dal prompt dei comandi

Rende le cose molto più semplici se si imposta un file bat come segue,

Ad esempio, per installare un servizio, creare un “myserviceinstaller.bat” e ” Esegui come amministratore

 @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 

per disinstallare il servizio,

Basta aggiungere un -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" 

Niente di male con il comando SC Create. Solo tu hai bisogno di conoscere gli argomenti corretti:

 SC CREATE "MySVC" binpath= “D:\Me\Services\MySVC\MySVC.exe" 

Effettuare quanto segue:

  1. Avvia il prompt dei comandi (CMD) con i diritti di amministratore.
  2. Digitare c:\windows\microsoft.net\framework\v4.0.30319\installutil.exe [your windows service path to exe]
  3. Premi il ritorno e basta!

È importante aprire con i diritti di amministratore altrimenti potresti trovare errori che non hanno senso. Se ne hai, controlla di averlo aperto prima con i diritti di amministratore!

Per aprire con i diritti di amministratore , fare clic con il tasto destro del mouse su “Prompt dei comandi” e selezionare “Esegui come amministratore”.

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

Devo aggiungere un altro punto in questa discussione. Per installare / disinstallare la versione a 64 bit degli assiemi, è necessario utilizzare la versione di strumento a 64 bit. Per installare un servizio, il comando dovrebbe essere:

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

e per disinstallare il comando dovrebbe essere:

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

Se si utilizza Powershell e si desidera installare il servizio .NET, è ansible utilizzare il modulo Install-Service . È un wrapper per lo strumento InstalUtil.

Espone 3 comandi

  • Install-Service – richiama il comando pathToExecutable di InstallUtil.exe
  • Install-ServiceIfNotInstalled: prima controlla se il servizio è installato se non esegue il metodo Install-Service
  • Disinstalla-Servizio- disinstalla il servizio. È ansible utilizzare ServiceName del percorso dell’eseguibile.

Codice a questo modulo può essere visto qui

Creare un file *.bat accanto al file exe servizio Windows per l’installazione con il seguente contesto:

 CLS ECHO Installing My Windows Service START %windir%\Microsoft.NET\Framework\v4.0.30319\installutil.exe "%~d0%~p0\YourWindowsServiceExeName.exe" 

Creare un file *.bat accanto al file exe servizio Windows per la disinstallazione con il seguente contesto:

 CLS ECHO Uninstalling My Windows Service START %windir%\Microsoft.NET\Framework\v4.0.30319\installutil.exe -u "%~d0%~p0\YourWindowsServiceExeName.exe" 

Esegui ogni file bat come amministratore per installare o disinstallare il tuo servizio Windows.

  1. avviare il prompt dei comandi (CMD) con i diritti di amministratore.
  2. Digitare c: \ windows \ microsoft.net \ framework \ v4.0.30319 \ installutil.exe [il percorso del servizio Windows per uscire]
  3. Premi il ritorno
  1. Esegui il prompt dei comandi di Windows come amministratore
  2. incolla questo codice: cd C:\Windows\Microsoft.NET\Framework\v4.0.30319\ per andare alla cartella
  3. ed esegui anche questo: installutil C:\ProjectFolder\bin\Debug\MyProject.exe

Nota: per disinstallare: installutil /u C:\ProjectFolder\bin\Debug\MyProject.exe

Servizio di installazione: –

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

UnInsatall Sevice: –

“C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ InstallUtil.exe” -u “C: \ Services \ myservice.Service.exe”

quando la tua versione assembly e il tuo progetto Visual Studio Biuld impostano su dot net 2 o 4 installano con la stessa versione.

installare il servizio con installutil la stessa versione

se costruito in dot net 4

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

se costruito in dot net 2

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

Apri Visual Studio e seleziona un nuovo progetto selezionando il modello Windows Service Windows Desktop nella scheda di Windows Desktop . Copia il seguente codice nel tuo file 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." }); } } } 

Fare clic con il tasto destro sul file service_name.cs e aprire il designer del servizio. fare clic con il tasto destro del mouse e selezionare Add Installer . fare clic con il tasto destro del mouse su serviceProcessInstaller1 e modificare il valore della proprietà Account da User a Local System .

Rimuovi il metodo static void main dal file Program.cs . Risparmi e costruisci il tuo progetto.

NOTA: goto cartella bin\Ddebug cartella del progetto. Quindi aprire Proprietà del file service_name.exe . Che vai alla scheda Compatibility . Quindi fare clic su Change Settings For All Users .

Seleziona l’opzione Run this program as an administrator .

Ora, devi aprire CommandPromt come amministratore. Dopo l’apertura, impostare la directory in cui è posizionato il file InstallUtil.exe . per esempio: C:\Windows\Microsoft.NET\Framework64\v4.0.30319 . ora scrivi il seguente comando:

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

Nota: -i è per l’installazione he service e -u per Unsinstall.

dopo -i imposta il percorso dove vuoi installare il tuo servizio.

ora scrivi il comando in CommandPromt come segue:

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

Nota: utilizzare stop per interrompere il servizio.

Ora apri ViewEventLog.exe . Seleziona Registri di Windows> Applicazione. Qui puoi controllare il registro del tuo servizio avviando e interrompendo il servizio.

Dovresti aprire il prompt dei comandi, vai a

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