Files
QYZH.InteractiveMagazine/QYZH.InteractiveMagazine.PrintWorker/scripts/install-service.ps1

36 lines
1.2 KiB
PowerShell
Raw Normal View History

param(
[string]$ServiceName = "QYZH.InteractiveMagazine.PrintWorker",
[string]$DisplayName = "QYZH InteractiveMagazine PrintWorker",
[string]$Description = "InteractiveMagazine automatic dot-code print worker.",
[string]$PublishPath = (Resolve-Path (Join-Path $PSScriptRoot "..")).Path
)
$ErrorActionPreference = "Stop"
if (-not ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) {
throw "Please run this script in an elevated PowerShell window."
}
$exePath = Resolve-Path (Join-Path $PublishPath "QYZH.InteractiveMagazine.PrintWorker.exe")
$existing = Get-Service -Name $ServiceName -ErrorAction SilentlyContinue
if ($existing) {
if ($existing.Status -ne "Stopped") {
Stop-Service -Name $ServiceName -Force
$existing.WaitForStatus("Stopped", "00:00:30")
}
sc.exe delete $ServiceName | Out-Null
Start-Sleep -Seconds 2
}
New-Service `
-Name $ServiceName `
-BinaryPathName "`"$exePath`"" `
-DisplayName $DisplayName `
-Description $Description `
-StartupType Automatic
Start-Service -Name $ServiceName
Get-Service -Name $ServiceName