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


323

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

Come faccio a fare questo?

Risposte:


517

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

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

35
Se è il servizio compilato x64, utilizzare "C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ installutil.exe".
dal

20
Ottengo uno strano errore. Nessun programma di installazione pubblico con RunInstallerAttribute. Si può trovare l'attributo Sì nell'assieme .exe. Rimuovi il file InstallState perché non ci sono programmi di installazione
Nick

1
Ciao, ho provato questa soluzione ma sta dando un'eccezione come "... file non trovato o una delle sue dipendenze". Per favore aiuto.
ShaileshDev,

Per tutti coloro che hanno lo stesso problema di tutti questi e di me: non è più necessario inserire l'intero percorso. è sufficiente un semplice installutil.exe "C: \ YourProject.exe".
Cataklysim,

1
@Cataklysim È necessario utilizzare il percorso completo, a meno che non sia stato aggiunto alla variabile di ambiente del percorso.
BluE

211

Niente di sbagliato nel comando SC Create. Devi solo conoscere gli argomenti corretti:

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

27
Questa è l'unica risposta che fa riferimento al modo ufficiale di installare / modificare / eliminare un servizio. Inoltre, ciò non dipende dall'installazione di .NET Framework e funziona con qualsiasi tipo di file, non solo con i binari .NET.
Alejandro,

7
Sì ... ecco perché ho adorato questo approccio e lo consiglio sempre poiché tutto il lavoro deve essere fatto nell'exe che può appartenere a qualsiasi versione .net fw.
Sid,

1
vale la pena notare che questo comando è disponibile solo per Windows Server (e alcune versioni precedenti di Windows). Win 10 ha anche un sccomando ma è qualcosa di diverso, non può essere usato per registrare servizi.
Capitano Dashenka,

4
Si noti che lo spazio dopo "binpath =" è indispensabile. @ParamvirSinghKarwal
Urk,

1
Se si utilizza PowerShell per eseguire questo comando, notare che SC è un alias per Set-Content. Scrivere SC.exe risolverà ciò.
Jesper Riemer Andersen,

84

Se il nome della directory ha uno spazio simile c:\program files\abc 123, è necessario utilizzare virgolette doppie attorno al percorso.

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

Installa il servizio Windows dal prompt dei comandi

Semplifica le cose se imposti un file bat come segue,

ad es. 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"

16

Eseguire quanto segue:

  1. Avviare il prompt dei comandi (CMD) con diritti di amministratore.
  2. genere c:\windows\microsoft.net\framework\v4.0.30319\installutil.exe [your windows service path to exe]
  3. Stampa returne basta!

È importante aprire con i diritti di amministratore, altrimenti potrebbero verificarsi errori che non hanno senso. Se ne ricevi, controlla prima di averlo aperto con i diritti di amministratore!

Per aprire con i diritti di amministratore , fai clic con il pulsante destro del mouse su "Prompt dei comandi" e seleziona "Esegui come amministratore".

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


11

Servizio di installazione: -

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

UnInstall Sevice: -

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

6

Devo aggiungere un altro punto in questo thread. Per installare / disinstallare la 64-bitversione degli assiemi è necessario utilizzare la 64-bitversione dello strumento. 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"

4

Creare un *.batfile accanto al file del servizio exeWindows 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 *.batfile accanto al file del servizio exeWindows 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 ciascuno dei batfile come amministratore per installare o disinstallare il servizio Windows.


2
  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. modifica ed esegui anche questo: installutil C:\ProjectFolder\bin\Debug\MyProject.exe

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


2

Apri Visual Studio e seleziona un nuovo progetto selezionando il Windows Servicemodello nella Windows Desktopscheda. Quindi copia il codice seguente 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 la finestra di progettazione del servizio. quindi fare clic con il tasto destro e selezionare Add Installer. di fare clic con il tasto destro su serviceProcessInstaller1e modificare il valore della proprietà da Accountda UseraLocal System .

Rimuovi static void mainmetodo dal Program.csfile. Di salvare e costruire il tuo progetto.

NOTA: vai alla bin\Ddebugcartella della cartella del tuo progetto. Quindi apri Proprietà del tuo service_name.exefile. Quindi vai alla Compatibilityscheda. Quindi fare clic su Change Settings For All Users.

Selezionare l'opzione Run this program as an administrator.

Ora devi aprire CommandPromt come amministratore. Dopo l'apertura, impostare la directory su dove InstallUtil.exeè posizionato il file. 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 del servizio e -u per Unsinstall.

dopo -i impostare la scrittura il percorso in cui si desidera installare il servizio.

ora scrivi il comando in CommandPromt come segue:

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

Nota: utilizzare stopper interrompere il servizio.

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


2

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

Espone 3 comandi

  • Install-Service: richiama il percorso  InstallUtil.exe eseguibile comando
  • Install-ServiceIfNotInstalled: per prima cosa controlla se il servizio è installato se non esegue il metodo Install-Service
  • Uninstall-Service: disinstalla il servizio. ServiceName può essere utilizzato per il percorso.

Il codice per questo modulo può essere visualizzato qui


1
  1. avviare il prompt dei comandi (CMD) con diritti di amministratore.
  2. Digita c: \ windows \ microsoft.net \ framework \ v4.0.30319 \ installutil.exe [il percorso del tuo servizio Windows per exe]
  3. Premi Invio

1

il codice seguente, installa e disinstalla il Servizio,

Aprire il prompt dei comandi ed eseguire il programma come amministratore comando seguente e premere Invio.

Sintassi

Installare

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

ad esempio: Our Path InstallUtil.exe C: \ MyFirstService \ bin \ Debug \ MyFirstService.exe

Per disinstallare

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

ad es .: il nostro percorso InstallUtil.exe -u C: \ MyFirstService \ bin \ Debug \ MyFirstService.exe

per ulteriore aiuto puoi vedere il seguente link: programma di esempio


1

Segui i passaggi durante la distribuzione del servizio Windows, non perdere tempo

1- Eseguire il prompt dei comandi con il diritto di amministratore

2- Assicurati sulla modalità di rilascio durante la compilazione del tuo IDE

3- Assegnare un tipo al programma di installazione del progetto nella vista di progettazione

4- Selezionare il tipo di autenticazione in base al caso

5- Assicurare le dipendenze del software: se si utilizza un certificato, installarlo correttamente

6- Vai sulla tua console scrivi questo:

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

c'è un argomento nascosto -i prima del percorso exe -i c:\che puoi usare -uper la disinstallazione

7- Cerca il tuo percorso .exe per sembrare un file di registro. È possibile utilizzare il Visualizzatore eventi per osservare nella funzione


1

apri il prompt dei comandi per gli sviluppatori come amministratore e vai a

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

Ora usa il percorso dove sei .exe

InstallUtil "D:\backup\WindowsService\WindowsService1\WindowsService1\obj\Debug\TestService.exe"

0

quando la versione dell'assembly e il progetto Visual Studio potrebbero essere impostati su dot net 2 o 4, installare con la stessa versione.

installa il servizio con installutilquella stessa versione

se incorporato in dot net 4

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

se incorporato in dot net 2

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


0

1.Dal menu Start, selezionare la directory di Visual Studio, quindi selezionare Prompt dei comandi dello sviluppatore per VS.

2. Viene visualizzato il prompt dei comandi per sviluppatori per Visual Studio.

3.Accedere alla directory in cui si trova il file eseguibile compilato del progetto.

4. Eseguire InstallUtil.exe dal prompt dei comandi con l'eseguibile del progetto come parametro


-1

Dovresti aprire il prompt dei comandi, vai a

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


-1

Apri il prompt dei comandi come amministratore, vai alla cartella in cui .exerisiede. Installa Execome servizio

D:\YourFolderName\YourExeName /i

Per disinstallare utilizzare /u.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.