Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

install/uninstall a Windows Service

I have created a Windows Service project using VSTS 2008 Windows Service type project and now I want to write scripts to install/uninstall it using PowerShell.

Any reference samples or documents?

like image 273
George2 Avatar asked Jun 26 '09 04:06

George2


People also ask

How do I install the same Windows Service with a different name?

In case you need the same service running on the same host but with different configuration, logically you would use same code just copy the service folder with different configuration and use installutil to install service with a different name.


2 Answers

Here's a sanitized version of an install script I wrote. Should demonstrate everything you need to do:

## delete existing service
# have to use WMI for much of this, native cmdlets are incomplete
$service = Get-WmiObject -Class Win32_Service -Filter "Name = 'My Service'"
if ($service -ne $null) 
{ 
    $service | stop-service
    $service.Delete() | out-null 
}

## run installutil
# 'frameworkdir' env var apparently isn't present on Win2003...
$installUtil = join-path $env:SystemRoot Microsoft.NET\Framework\v2.0.50727\installutil.exe
$serviceExe = join-path $messageServerPath MyService.exe
$installUtilLog = join-path $messageServerPath InstallUtil.log
& $installUtil $serviceExe /logfile="$installUtilLog" | write-verbose

$service = Get-WmiObject -Class Win32_Service -Filter "Name = 'My Service'"

# change credentials if necessary
if ($user -ne "" -and $password -ne "")
    { $service.change($null, $null, $null, $null, $null, $null, $user, $password, $null, $null, $null) | out-null }

# activate
$service | set-service -startuptype Automatic -passthru | start-service
write-verbose "Successfully started service $($service.name)"
like image 50
Richard Berg Avatar answered Oct 05 '22 03:10

Richard Berg


You didn't mention what language you are using. More than likely, the windows install utility can handle it.

like image 39
Glenn Avatar answered Oct 05 '22 03:10

Glenn