Scripts for installing, starting, stopping and uninstalling a windows service
These 5 files has served me for 10 years or more for updating a windows service in a small project I have.
The code is crude but serves its purpose. It is not hard to make the code nicer.
The thing here is that I have 1 service in 2 instances, one for production and one for QA on the same machine. Hence they need different names.
The bat file I normally run is StopUninstallInstallStartService.bat because it does the whole turn around. Between every step it pauses and allows me to check the output and between Uninstall and Install also swap the binaries.
I have a similar single file solution here.
InstallService.bat
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | @echo off rem This bat file installs a service and sets its name. if dummy==dummy%1 ( goto help ) rem *** Install the service. sc create %1 binPath= %CD%\MyService.exe DisplayName= "MyService [%1]" start= delayed-auto sc failure %1 reset= 0 actions= restart/30/restart/30/restart/3000 rem C:\Windows\Microsoft.NET\Framework\v4.0.30319\installutil.exe MyService.exe goto end : help echo Parameter is missing. echo Syntax: InstallService [Servicename] :end |
StartService.bat
1 2 3 4 5 6 7 8 9 10 11 12 | @echo off rem This bat file starts a service by its name. if dummy==dummy%1 ( goto help ) rem *** Start the service. sc start %1 goto end : help echo Parameter is missing. echo Syntax: StartService [Servicename] :end |
StopService.bat
1 2 3 4 5 6 7 8 9 10 11 12 | @echo off rem This bat file stops a service by its name. if dummy==dummy%1 ( goto help ) rem *** Stop the service. sc stop %1 goto end : help echo Parameter is missing. echo Syntax: StopService [Servicename] :end |
UninstallService.bat
1 2 3 4 5 6 7 8 9 10 11 12 13 | @echo off rem This file uninstalls a service by its name. if dummy==dummy%1 ( goto help ) rem *** Uninstall the service. rem sc delete %1 C:\Windows\Microsoft.NET\Framework\v4.0.30319\installutil.exe /uninstall MyService.exe goto end : help echo Parameter is missing. echo Syntax: UninstallService [Servicename] :end |
StopUninstallInstallStartService.bat
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | @echo off rem This file stops, uninstalls, installs and starts a service; with a pause in between for manual intervention. if dummy==dummy%1 ( goto help ) echo *** Stop the service call StopService %1 pause echo *** Uninstall the service. call DeleteService %1 pause echo *** Install the service. call InstallService %1 pause echo *** Start the service. call StartService %1 pause goto end :help echo Parameter is missing. echo Syntax: StopUninstallInstallStartService [Servicename] :end |