<# .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."