2026-10-13 08:09:07 -05:00
|
|
|
<#
|
|
|
|
|
.SYNOPSIS
|
|
|
|
|
Detiene y elimina el servicio de Windows. No borra los archivos ni los logs.
|
|
|
|
|
#>
|
|
|
|
|
[CmdletBinding()]
|
|
|
|
|
param([string]$NombreServicio = 'DevolucionProveedores')
|
|
|
|
|
|
|
|
|
|
$ErrorActionPreference = 'Stop'
|
2026-10-13 08:55:29 -05:00
|
|
|
|
|
|
|
|
$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 }
|
2026-10-13 08:09:07 -05:00
|
|
|
|
|
|
|
|
if (-not (Get-Service -Name $NombreServicio -ErrorAction SilentlyContinue)) {
|
|
|
|
|
Write-Host "El servicio '$NombreServicio' no existe."
|
|
|
|
|
exit 0
|
|
|
|
|
}
|
|
|
|
|
|
2026-10-13 08:55:29 -05:00
|
|
|
$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 }
|
|
|
|
|
|
2026-10-13 08:09:07 -05:00
|
|
|
Write-Host "Servicio '$NombreServicio' eliminado. Los archivos y los logs siguen en $PSScriptRoot."
|