134 lines
4.3 KiB
PowerShell
134 lines
4.3 KiB
PowerShell
#Requires -RunAsAdministrator
|
|
<#
|
|
.SYNOPSIS
|
|
BTGO Telegram Bot - Service Uninstall Script
|
|
.DESCRIPTION
|
|
Dezinstaleaza serviciul Windows BTGO Telegram Bot
|
|
.NOTES
|
|
Rulare: Right-click → "Run with PowerShell" (ca Administrator)
|
|
#>
|
|
|
|
$ErrorActionPreference = "Stop"
|
|
|
|
# ============================================================================
|
|
# CONFIGURATION
|
|
# ============================================================================
|
|
|
|
$ServiceName = "BTGOTelegramBot"
|
|
$ScriptDir = Split-Path -Parent $PSCommandPath
|
|
$ProjectDir = Resolve-Path (Join-Path $ScriptDir "..\..\..") | Select-Object -ExpandProperty Path
|
|
$NssmPath = Join-Path $ProjectDir "deployment\windows\tools\nssm.exe"
|
|
|
|
function Write-ColorOutput {
|
|
param([string]$Message, [string]$Prefix = "")
|
|
$color = switch ($Prefix) {
|
|
"[OK]" { "Green" }
|
|
"[INFO]" { "Cyan" }
|
|
"[EROARE]" { "Red" }
|
|
"[AVERTIZARE]" { "Yellow" }
|
|
default { "White" }
|
|
}
|
|
if ($Prefix) {
|
|
Write-Host "$Prefix " -ForegroundColor $color -NoNewline
|
|
Write-Host $Message
|
|
} else {
|
|
Write-Host $Message
|
|
}
|
|
}
|
|
|
|
function Write-Separator {
|
|
param([string]$Title = "")
|
|
Write-Host ""
|
|
Write-Host ("=" * 80) -ForegroundColor Cyan
|
|
if ($Title) {
|
|
Write-Host $Title -ForegroundColor Yellow
|
|
Write-Host ("=" * 80) -ForegroundColor Cyan
|
|
}
|
|
}
|
|
|
|
# ============================================================================
|
|
# VERIFICARE SERVICIU
|
|
# ============================================================================
|
|
|
|
Write-Separator "DEZINSTALARE SERVICIU: $ServiceName"
|
|
Write-Host ""
|
|
|
|
$service = Get-Service -Name $ServiceName -ErrorAction SilentlyContinue
|
|
|
|
if (-not $service) {
|
|
Write-ColorOutput "Serviciul $ServiceName nu este instalat." -Prefix "[INFO]"
|
|
Write-Host "Nimic de dezinstalat."
|
|
Read-Host "`nApasa Enter pentru a inchide"
|
|
exit 0
|
|
}
|
|
|
|
# ============================================================================
|
|
# OPRIRE SERVICIU
|
|
# ============================================================================
|
|
|
|
Write-ColorOutput "Verificare status serviciu..." -Prefix "[INFO]"
|
|
|
|
if ($service.Status -eq "Running") {
|
|
Write-ColorOutput "Serviciul ruleaza. Oprire..." -Prefix "[INFO]"
|
|
try {
|
|
Stop-Service -Name $ServiceName -Force
|
|
Write-ColorOutput "Serviciu oprit cu succes" -Prefix "[OK]"
|
|
Start-Sleep -Seconds 2
|
|
} catch {
|
|
Write-ColorOutput "Oprirea serviciului a esuat!" -Prefix "[AVERTIZARE]"
|
|
Write-ColorOutput "Incercam oprire fortata..." -Prefix "[INFO]"
|
|
sc.exe stop $ServiceName | Out-Null
|
|
Start-Sleep -Seconds 5
|
|
}
|
|
} else {
|
|
Write-ColorOutput "Serviciul este deja oprit" -Prefix "[INFO]"
|
|
}
|
|
|
|
# ============================================================================
|
|
# DEZINSTALARE SERVICIU
|
|
# ============================================================================
|
|
|
|
Write-ColorOutput "Dezinstalare serviciu..." -Prefix "[INFO]"
|
|
|
|
try {
|
|
if (Test-Path $NssmPath) {
|
|
# Folosește NSSM pentru dezinstalare
|
|
& $NssmPath remove $ServiceName confirm
|
|
if ($LASTEXITCODE -ne 0) { throw }
|
|
} else {
|
|
# Fallback la sc delete
|
|
Write-ColorOutput "NSSM nu a fost gasit, folosim sc delete" -Prefix "[INFO]"
|
|
sc.exe delete $ServiceName | Out-Null
|
|
if ($LASTEXITCODE -ne 0) { throw }
|
|
}
|
|
} catch {
|
|
Write-ColorOutput "Dezinstalarea serviciului a esuat!" -Prefix "[EROARE]"
|
|
Read-Host "`nApasa Enter pentru a inchide"
|
|
exit 1
|
|
}
|
|
|
|
# ============================================================================
|
|
# VERIFICARE FINALA
|
|
# ============================================================================
|
|
|
|
Start-Sleep -Seconds 2
|
|
|
|
$serviceCheck = Get-Service -Name $ServiceName -ErrorAction SilentlyContinue
|
|
|
|
if (-not $serviceCheck) {
|
|
Write-Separator "[SUCCES] SERVICIU DEZINSTALAT CU SUCCES!"
|
|
Write-Host ""
|
|
Write-Host "Serviciul $ServiceName a fost eliminat din sistem." -ForegroundColor Green
|
|
Write-Host ""
|
|
Write-Host "Pentru a reinstala serviciul, rulati:" -ForegroundColor Yellow
|
|
Write-Host " .\install_service.ps1"
|
|
Write-Host ""
|
|
Write-Separator
|
|
} else {
|
|
Write-ColorOutput "Serviciul pare sa mai existe in sistem!" -Prefix "[AVERTIZARE]"
|
|
Write-Host "Poate fi nevoie de un restart al sistemului."
|
|
Get-Service -Name $ServiceName | Format-List
|
|
}
|
|
|
|
Read-Host "`nApasa Enter pentru a inchide"
|