149 lines
5.3 KiB
PowerShell
149 lines
5.3 KiB
PowerShell
#Requires -RunAsAdministrator
|
|
<#
|
|
.SYNOPSIS
|
|
Deinstalliert das Starface Outlook Sync Add-in.
|
|
.DESCRIPTION
|
|
Entfernt Server, Zertifikate, Scheduled Task, Registry-Eintraege und Dateien.
|
|
#>
|
|
|
|
param(
|
|
[string]$InstallDir = "$env:ProgramFiles\StarfaceOutlookSync"
|
|
)
|
|
|
|
$ErrorActionPreference = "Stop"
|
|
|
|
function Write-Header($text) {
|
|
Write-Host ""
|
|
Write-Host "============================================================" -ForegroundColor Cyan
|
|
Write-Host " $text" -ForegroundColor Cyan
|
|
Write-Host "============================================================" -ForegroundColor Cyan
|
|
Write-Host ""
|
|
}
|
|
|
|
function Write-Step($text) {
|
|
Write-Host " [OK] $text" -ForegroundColor Green
|
|
}
|
|
|
|
function Write-Warn($text) {
|
|
Write-Host " [!] $text" -ForegroundColor Yellow
|
|
}
|
|
|
|
Write-Header "Starface Outlook Sync - Deinstallation"
|
|
|
|
# Sicherheitsabfrage
|
|
Write-Host " Dies entfernt das Starface Outlook Sync Add-in vollstaendig." -ForegroundColor Yellow
|
|
Write-Host " Installationsverzeichnis: $InstallDir" -ForegroundColor Yellow
|
|
$confirm = Read-Host " Fortfahren? (j/n)"
|
|
if ($confirm -ne "j") {
|
|
Write-Host " Abgebrochen." -ForegroundColor Gray
|
|
exit 0
|
|
}
|
|
|
|
# ============================================================
|
|
# Schritt 1: Scheduled Task stoppen und entfernen
|
|
# ============================================================
|
|
|
|
Write-Header "Schritt 1: Server stoppen"
|
|
|
|
$taskName = "StarfaceOutlookSyncServer"
|
|
$task = Get-ScheduledTask -TaskName $taskName -ErrorAction SilentlyContinue
|
|
if ($task) {
|
|
if ($task.State -eq "Running") {
|
|
Stop-ScheduledTask -TaskName $taskName
|
|
Write-Step "Server gestoppt."
|
|
}
|
|
Unregister-ScheduledTask -TaskName $taskName -Confirm:$false
|
|
Write-Step "Scheduled Task entfernt."
|
|
} else {
|
|
Write-Warn "Scheduled Task '$taskName' nicht gefunden."
|
|
}
|
|
|
|
# ============================================================
|
|
# Schritt 2: Zertifikate entfernen
|
|
# ============================================================
|
|
|
|
Write-Header "Schritt 2: Zertifikate entfernen"
|
|
|
|
$certInfoPath = Join-Path $InstallDir "cert-info.json"
|
|
if (Test-Path $certInfoPath) {
|
|
$certInfo = Get-Content $certInfoPath -Raw | ConvertFrom-Json
|
|
|
|
# Localhost-Zertifikat aus dem persoenlichen Store entfernen
|
|
if ($certInfo.localhostThumbprint) {
|
|
$cert = Get-ChildItem "Cert:\LocalMachine\My" | Where-Object { $_.Thumbprint -eq $certInfo.localhostThumbprint }
|
|
if ($cert) {
|
|
Remove-Item $cert.PSPath -Force
|
|
Write-Step "Localhost-Zertifikat entfernt."
|
|
}
|
|
}
|
|
|
|
# Lokale CA aus dem Root Store entfernen
|
|
if ($certInfo.caThumbprint) {
|
|
$caCert = Get-ChildItem "Cert:\LocalMachine\Root" | Where-Object { $_.Thumbprint -eq $certInfo.caThumbprint }
|
|
if ($caCert) {
|
|
Remove-Item $caCert.PSPath -Force
|
|
Write-Step "Lokale CA entfernt."
|
|
}
|
|
|
|
# Auch aus dem persoenlichen Store
|
|
$caCertMy = Get-ChildItem "Cert:\LocalMachine\My" | Where-Object { $_.Thumbprint -eq $certInfo.caThumbprint }
|
|
if ($caCertMy) {
|
|
Remove-Item $caCertMy.PSPath -Force
|
|
}
|
|
}
|
|
} else {
|
|
Write-Warn "cert-info.json nicht gefunden. Zertifikate muessen ggf. manuell entfernt werden."
|
|
}
|
|
|
|
# ============================================================
|
|
# Schritt 3: Outlook Add-in Registrierung entfernen
|
|
# ============================================================
|
|
|
|
Write-Header "Schritt 3: Outlook Add-in Registrierung"
|
|
|
|
Write-Warn "Das Add-in ist pro Benutzer am Microsoft 365 Konto registriert."
|
|
Write-Host " Jeder Benutzer muss es selbst in Outlook entfernen:" -ForegroundColor Gray
|
|
Write-Host " 1. https://aka.ms/olksideload oeffnen" -ForegroundColor Gray
|
|
Write-Host " 2. Unter 'Meine Add-Ins' das Add-in entfernen" -ForegroundColor Gray
|
|
Write-Host " Oder in Outlook: Add-Ins verwalten -> Add-In entfernen" -ForegroundColor Gray
|
|
|
|
# ============================================================
|
|
# Schritt 4: Firewall-Regel entfernen
|
|
# ============================================================
|
|
|
|
Write-Header "Schritt 4: Firewall-Regel entfernen"
|
|
|
|
Remove-NetFirewallRule -DisplayName "Starface Outlook Sync" -ErrorAction SilentlyContinue
|
|
Write-Step "Firewall-Regel entfernt."
|
|
|
|
# ============================================================
|
|
# Schritt 5: Dateien entfernen
|
|
# ============================================================
|
|
|
|
Write-Header "Schritt 5: Dateien entfernen"
|
|
|
|
if (Test-Path $InstallDir) {
|
|
Remove-Item -Path $InstallDir -Recurse -Force
|
|
Write-Step "Installationsverzeichnis entfernt: $InstallDir"
|
|
} else {
|
|
Write-Warn "Verzeichnis nicht gefunden: $InstallDir"
|
|
}
|
|
|
|
# ============================================================
|
|
# Zusammenfassung
|
|
# ============================================================
|
|
|
|
Write-Header "Deinstallation abgeschlossen"
|
|
|
|
Write-Host " Das Starface Outlook Sync Add-in wurde entfernt." -ForegroundColor Green
|
|
Write-Host ""
|
|
Write-Host " Hinweis: Falls das Add-in im neuen Outlook manuell" -ForegroundColor Gray
|
|
Write-Host " hinzugefuegt wurde, muss es dort auch manuell entfernt werden:" -ForegroundColor Gray
|
|
Write-Host " Einstellungen -> Add-Ins verwalten -> Add-In entfernen" -ForegroundColor Gray
|
|
Write-Host ""
|
|
Write-Host " Das Starface-Zertifikat wurde NICHT entfernt," -ForegroundColor Yellow
|
|
Write-Host " da es ggf. von anderen Anwendungen benoetigt wird." -ForegroundColor Yellow
|
|
Write-Host ""
|
|
|
|
Read-Host "Eingabetaste zum Beenden"
|