Search code examples
.netinstallationservicebatch-filewindows-server-2003

Batch Script to Install or Uninstall a .NET Windows Service


I have no experience writing batch scripts, but I was wondering if there was a way to install a .NET Windows service using installutil.exe using such a script, or uninstall the service if it is already installed, ideally with some kind of confirmation that I actually would like to perform the uninstall (e.g. press y to uninstall).

Here are some details:

  • The .exe for the service is located in the C:\Program Files\Data Service directory
  • The script should be in the same directory as the .exe for the service
  • It would be nice to add a simple line to a log file (we'll call it program.log, also in this directory) after the service has been installed
  • The machine is running Windows Server 2003 with the .NET Framework installed in the default directory C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727

If you feel this could be done in a better way it would be nice to hear other suggestions. I could always write a service installer but that is not a priority.


Solution

  • You could setup your service exe to support self registration / unregistration using command line arguments (-i -u etc) instead of writing a batch file to do the same thing.

    Information on creating Self Installing Services In .NET

    http://anotherlab.rajapet.net/2006/06/self-installing-services-in-net.html

    http://www.gotnet.biz/WindowsServiceSelfInstaller.ashx

    Also adding a Setup Project to your solution and having Visual Studio build an install package might be faster.

    How to create a Setup project for a Windows Service in Visual Basic .NET or in Visual Basic 2005

    (VB) http://support.microsoft.com/kb/317421

    (C#) http://support.microsoft.com/kb/816169