36 lines
1.2 KiB
PowerShell
36 lines
1.2 KiB
PowerShell
|
|
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
|