Add service install/uninstall scripts to repo root

This commit is contained in:
administrator 2026-04-17 00:25:10 +02:00
parent fcddfe215a
commit 3182ef655e
3 changed files with 75 additions and 0 deletions

4
.gitignore vendored
View file

@ -3,6 +3,10 @@ bin/
obj/
publish/
# Skripte aus publish/ im Root behalten
!install-service.ps1
!uninstall-service.ps1
# Visual Studio
.vs/
*.user

42
install-service.ps1 Normal file
View file

@ -0,0 +1,42 @@
#Requires -RunAsAdministrator
$ServiceName = "MailPrint"
$DisplayName = "MailPrint - E-Mail & WebAPI zu Drucker"
$Description = "Druckt PDF-Anhaenge automatisch aus E-Mails (IMAP/POP3) und per REST API auf Windows-Drucker."
$ExePath = Join-Path $PSScriptRoot "publish\MailPrint.exe"
if (-not (Test-Path $ExePath)) {
Write-Error "MailPrint.exe nicht gefunden: $ExePath"
exit 1
}
$existing = Get-Service -Name $ServiceName -ErrorAction SilentlyContinue
if ($existing) {
Write-Host "Dienst '$ServiceName' ist bereits installiert. Stoppe zuerst..." -ForegroundColor Yellow
Stop-Service -Name $ServiceName -Force -ErrorAction SilentlyContinue
Start-Sleep -Seconds 2
}
Write-Host "Installiere Dienst '$ServiceName'..." -ForegroundColor Cyan
New-Service `
-Name $ServiceName `
-DisplayName $DisplayName `
-Description $Description `
-BinaryPathName $ExePath `
-StartupType Automatic | Out-Null
sc.exe failure $ServiceName reset= 3600 actions= restart/5000/restart/10000/restart/30000 | Out-Null
Write-Host "Starte Dienst..." -ForegroundColor Cyan
Start-Service -Name $ServiceName
$svc = Get-Service -Name $ServiceName
Write-Host ""
Write-Host "Ergebnis:" -ForegroundColor Green
Write-Host " Name: $($svc.Name)"
Write-Host " Status: $($svc.Status)"
Write-Host " Start: $($svc.StartType)"
Write-Host ""
Write-Host "Fertig. MailPrint laeuft jetzt als Windows-Dienst." -ForegroundColor Green
Write-Host "Logs: $(Join-Path $PSScriptRoot 'publish\logs')"

29
uninstall-service.ps1 Normal file
View file

@ -0,0 +1,29 @@
#Requires -RunAsAdministrator
$ServiceName = "MailPrint"
$svc = Get-Service -Name $ServiceName -ErrorAction SilentlyContinue
if (-not $svc) {
Write-Host "Dienst '$ServiceName' ist nicht installiert." -ForegroundColor Yellow
exit 0
}
if ($svc.Status -ne "Stopped") {
Write-Host "Stoppe Dienst '$ServiceName'..." -ForegroundColor Cyan
Stop-Service -Name $ServiceName -Force
Start-Sleep -Seconds 3
}
Write-Host "Entferne Dienst '$ServiceName'..." -ForegroundColor Cyan
sc.exe delete $ServiceName | Out-Null
Start-Sleep -Seconds 2
$check = Get-Service -Name $ServiceName -ErrorAction SilentlyContinue
if ($check) {
Write-Error "Dienst konnte nicht entfernt werden. Bitte manuell pruefen."
exit 1
}
Write-Host ""
Write-Host "Dienst '$ServiceName' erfolgreich deinstalliert." -ForegroundColor Green