2009-06-26 17 views
6

VSTS 2008 Windows Serviceタイププロジェクトを使用してWindowsサービスプロジェクトを作成しましたが、PowerShellを使用してインストール/アンインストールするスクリプトを作成したいと思います。Windowsサービスのインストール/アンインストール

参考資料または参考資料はありますか?

答えて

4

使用している言語については言及していません。おそらく、windows install utilityはそれを処理できます。

+0

私はC#を使用しています。これ以上のアイデアは? – George2

+0

InstallUtil yourservice.exe – Glenn

2

質問が正しく分かったら、まずVSTS内からインストーラを作成する必要があります。私は1つをやったので、それはしばらくしていますが、それは基本的に次のようになります。インストーラを作成したら

http://csharpcomputing.com/Tutorials/Lesson22.htm

が、あなたはPowerShellを使用し、それを自動化することができます。

実際にPowerShellをサービスインストーラにしたい場合は、ServiceInstaller Classを使用してWindowsサービスインストーラをPowerShellから自動化する方法があります。

18

私が書いたインストールスクリプトのサニタイズバージョンです。あなたがする必要があるすべてを示す必要があります:

## 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)" 
関連する問題