Files
devolucion_proveedores/deploy/windows/desinstalar-servicio.ps1
T

29 lines
1.2 KiB
PowerShell
Raw Normal View History

<#
.SYNOPSIS
Detiene y elimina el servicio de Windows. No borra los archivos ni los logs.
#>
[CmdletBinding()]
param([string]$NombreServicio = 'DevolucionProveedores')
$ErrorActionPreference = 'Stop'
$esAdmin = ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
if (-not $esAdmin) { Write-Host 'ERROR: Ejecute este script en una consola de PowerShell como administrador.' -ForegroundColor Red; exit 1 }
if (-not (Get-Service -Name $NombreServicio -ErrorAction SilentlyContinue)) {
Write-Host "El servicio '$NombreServicio' no existe."
exit 0
}
$nssm = Join-Path $PSScriptRoot 'servicio\nssm.exe'
if (Test-Path $nssm) {
& $nssm stop $NombreServicio | Out-Null # si ya estaba detenido, no es un error
& $nssm remove $NombreServicio confirm | Out-Null
} else {
Write-Host "No se encontró $nssm; se usa sc.exe."
& sc.exe stop $NombreServicio | Out-Null
& sc.exe delete $NombreServicio | Out-Null
}
if ($LASTEXITCODE -ne 0) { Write-Host "ERROR: no se pudo eliminar el servicio '$NombreServicio'." -ForegroundColor Red; exit 1 }
Write-Host "Servicio '$NombreServicio' eliminado. Los archivos y los logs siguen en $PSScriptRoot."