我使用VSTS 2008 Windows服务类型项目创建了一个Windows服务项目,现在我想编写脚本来使用PowerShell安装/卸载它。
任何参考样本或文件?
答案 0 :(得分: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)"
答案 1 :(得分:4)
您没有提到您正在使用的语言。 windows install utility很可能会处理它。
答案 2 :(得分:2)
如果我正确理解您的问题,您首先需要在VSTS中创建安装程序。我做了一段时间已经有一段时间了,但基本上看起来像这样:
http://csharpcomputing.com/Tutorials/Lesson22.htm
创建安装程序后,您可以使用PowerShell自动执行安装程序。
如果您确实希望PowerShell成为您的服务安装程序,可以使用ServiceInstaller Class从PowerShell自动执行Windows服务安装程序。