Installer un service Windows à l'aide d'une invite de commande Windows?

323

Je souhaite installer un service Windows à l'aide d'une invite de commandes Windows (pas l'invite de commandes Visual Studio).

Comment puis-je faire cela?

Vikash Pandey
la source

Réponses:

517

Accédez à installutil.exe dans votre dossier .net (pour .net 4, c'est C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 par exemple) et utilisez-le pour installer votre service, comme ceci:

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\installutil.exe" "c:\myservice.exe"
hcb
la source
35
S'il s'agit du service compilé x64, utilisez "C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ installutil.exe".
nme
20
Je reçois une erreur bizarre. Aucun programme d'installation public avec RunInstallerAttribute. L'attribut Yes est introuvable dans l'assembly .exe. Supprimez le fichier InstallState car il n'y a aucun programme d'installation
Nick
1
Salut, j'ai essayé cette solution mais son exception donnant comme "... fichier introuvable ou l'une de ses dépendances." Veuillez aider.
ShaileshDev
Pour tous ceux qui ont le même problème que tous ceux-là et moi: vous n'avez plus besoin d'y mettre tout le chemin. un simple installutil.exe "C: \ YourProject.exe" suffit.
Cataklysim
1
@Cataklysim Vous devez utiliser le chemin complet, sauf si vous l'avez ajouté à la variable d'environnement path.
BluE
211

Rien de mal avec la commande SC Create. Il vous suffit de connaître les arguments corrects:

SC CREATE "MySVC" binpath= "D:\Me\Services\MySVC\MySVC.exe"
Sid
la source
27
C'est la seule réponse qui fait référence à la manière officielle d'installer / modifier / supprimer un service. De plus, cela ne dépend pas de l'installation du .NET Framework et fonctionne avec tout type de fichier, pas seulement les binaires .NET.
Alejandro
7
Oui, c'est pourquoi j'ai adoré cette approche et je la conseille toujours car tout le travail doit être fait dans l'exe qui peut appartenir à n'importe quelle version .net fw.
Sid
1
il convient de noter que cette commande n'est disponible que pour le serveur Windows (et certaines anciennes versions de Windows). Win 10 a scégalement une commande mais c'est quelque chose de différent, ne peut pas être utilisé pour enregistrer des services.
Captain Dashenka
4
Notez que l'espace après "binpath =" est impératif. @ParamvirSinghKarwal
Urk
1
Si vous utilisez powershell pour exécuter cette commande, notez que SC est un alias pour Set-Content. L'écriture de SC.exe corrigera cela.
Jesper Riemer Andersen
84

Si le nom du répertoire a un espace comme c:\program files\abc 123, vous devez utiliser des guillemets doubles autour du chemin.

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

Installer le service Windows à partir de l'invite de commande

Cela rend les choses beaucoup plus faciles si vous configurez un fichier bat comme suit,

Par exemple, pour installer un service, créez un "myserviceinstaller.bat" et " Exécuter en tant qu'administrateur "

@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

pour désinstaller le service,

Ajoutez simplement -u à la commande 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
la source
16

Effectuez les opérations suivantes:

  1. Démarrez l'invite de commande (CMD) avec des droits d'administrateur.
  2. Type c:\windows\microsoft.net\framework\v4.0.30319\installutil.exe [your windows service path to exe]
  3. Appuyez returnet c'est tout!

Il est important d'ouvrir avec des droits d'administrateur, sinon vous pouvez trouver des erreurs qui ne se présentent pas. Si vous en obtenez, vérifiez d'abord que vous l'avez ouvert avec les droits d'administrateur!

Pour ouvrir avec les droits d'administrateur , cliquez avec le bouton droit sur «Invite de commandes» et sélectionnez «Exécuter en tant qu'administrateur».

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

Base33
la source
11

Installer le service: -

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

Désinstaller Sevice: -

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

Je dois ajouter un point de plus dans ce fil. Pour installer / désinstaller la 64-bitversion des assemblages, il faut utiliser la 64-bitversion de l'outil. Pour installer un service, la commande doit être:

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

et pour désinstaller la commande doit être:

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

Créez un *.batfichier à côté de votre exefichier de service Windows à installer dans le contexte suivant:

CLS
ECHO Installing My Windows Service 

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

Créez un *.batfichier à côté de votre exefichier de service Windows pour la désinstallation dans le contexte suivant:

CLS
ECHO Uninstalling My Windows Service 

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

Exécutez chacun des batfichiers en tant qu'administrateur pour installer ou désinstaller votre service Windows.

Mohammad Dayyan
la source
2
  1. Exécutez l'invite de commandes Windows en tant qu'administrateur
  2. collez ce code: cd C:\Windows\Microsoft.NET\Framework\v4.0.30319\pour aller dans le dossier
  3. éditez et exécutez cela aussi: installutil C:\ProjectFolder\bin\Debug\MyProject.exe

Remarque: pour désinstaller:installutil /u C:\ProjectFolder\bin\Debug\MyProject.exe

Oguzhan KIRCALI
la source
2

Ouvrez Visual studio et sélectionnez un nouveau projet en sélectionnant le Windows Servicemodèle dans l' Windows Desktoponglet. Ensuite, copiez le code suivant dans votre fichier 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." });
        }
    }
}

Cliquez avec le bouton droit sur le fichier service_name.cs et ouvrez le concepteur de service. que clic droit et sélectionnez Add Installer. cliquez avec le bouton droit sur serviceProcessInstaller1et modifiez sa valeur de propriété Accountde Userà Local System.

Supprimer la static void mainméthode du Program.csfichier. Ensuite, enregistrez et créez votre projet.

REMARQUE:bin\Ddebug dossier goto de votre dossier de projet. Ensuite, ouvrez les propriétés de votre service_name.exefichier. CompatibilityOnglet goto . Cliquez ensuite sur Change Settings For All Users.

Sélectionnez une option Run this program as an administrator.

Maintenant, vous devez ouvrir CommandPromt en tant qu'administrateur. Après ouverture, définissez le répertoire dans lequel votre InstallUtil.exefichier est placé. par ex: C:\Windows\Microsoft.NET\Framework64\v4.0.30319. écrivez maintenant la commande suivante:

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

Remarque: -i correspond à l'installation du service et -u à ​​la désinstallation.

après -i, définissez le chemin d'accès où vous souhaitez installer votre service.

écrivez maintenant la commande dans CommandPromt comme suit:

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

Remarque: utilisez stoppour arrêter le service.

Maintenant, ouvrez ViewEventLog.exe. Sélectionnez Journaux Windows> Application. Là, vous pouvez consulter le journal de votre service en démarrant et en arrêtant le service.

Karan Raiyani
la source
2

Si vous utilisez Powershell et que vous souhaitez installer le service .NET, vous pouvez utiliser le module Install-Service . Il s'agit d'un wrapper pour l'outil InstalUtil.

Il expose 3 commandes

  • Install-Service - invoque la  commande InstallUtil.exe pathToExecutable
  • Install-ServiceIfNotInstalled - il vérifie d'abord si le service est installé, sinon effectuez la méthode Install-Service
  • Uninstall-Service- il désinstalle le service. ServiceName du chemin d'accès à l'exécutable peut être utilisé.

Le code de ce module peut être consulté ici

Pawel Wujczyk
la source
1
  1. démarrez l'invite de commande (CMD) avec des droits d'administrateur.
  2. Tapez c: \ windows \ microsoft.net \ framework \ v4.0.30319 \ installutil.exe [votre chemin de service Windows vers exe]
  3. Retour de presse
quel serveur
la source
1

le code suivant, installez et désinstallez le Service,

Ouvrez l' invite de commande et exécutez le programme en tant qu'administrateur, lancez la commande ci-dessous et appuyez sur Entrée.

Syntaxe

À installer

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

par exemple: Notre chemin InstallUtil.exe C: \ MyFirstService \ bin \ Debug \ MyFirstService.exe

Pour désinstaller

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

par exemple: Notre chemin InstallUtil.exe -u C: \ MyFirstService \ bin \ Debug \ MyFirstService.exe

pour plus d'aide, vous pouvez voir le lien suivant: exemple de programme

Joji Thomas Eapen
la source
1

Suivez les étapes lors du déploiement du service Windows, ne perdez pas de temps

1- Exécuter l'invite de commande par le droit d'administration

2- Assurez-vous du mode de libération lors de la compilation de votre IDE

3- Donnez un type à votre installateur de projet en mode conception

4- Sélectionnez le type d'authentification selon le cas

5- Assurez-vous des dépendances logicielles: si vous utilisez un certificat, installez-le correctement

6- Allez sur votre console, écrivez ceci:

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

il y a un argument -i caché avant le chemin exe que -i c:\vous pouvez utiliser -upour désinstaller

7- Regardez votre chemin .exe pour ressembler à un fichier journal. Vous pouvez utiliser l'observateur d'événements pour observer dans la fonctionnalité

Hamit YILDIRIM
la source
1

ouvrez l'invite de commande du développeur en tant qu'administrateur et accédez à

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

Maintenant, utilisez le chemin où est votre .exe

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

lorsque votre version d'assembly et votre paramètre Visual Studio Biuld sur dot net 2 ou 4 s'installent avec la même version.

installer le service avec installutilcette même version

si construit en dot net 4

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

si construit en dot net 2

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

sabre tabatabaee yazdi
la source
0

Dans le menu Démarrer, sélectionnez le répertoire Visual Studio, puis sélectionnez Prompt Command Prompt for VS.

2. L'invite de commande du développeur pour Visual Studio apparaît.

3.Accédez au répertoire où se trouve le fichier exécutable compilé de votre projet.

4. Exécutez InstallUtil.exe à partir de l'invite de commande avec l'exécutable de votre projet en tant que paramètre

AMIR2580
la source
-1

Vous devez ouvrir l'invite de commande, accédez à

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

Expert Soft-Web
la source
-1

Ouvrez l'invite de commande en tant qu'administrateur, accédez à votre dossier où .exeréside votre . Pour installer en Exetant que service

D:\YourFolderName\YourExeName /i

Pour désinstaller, utilisez /u.

Sulaiman danois
la source