# Check if CWA service exists if (Get-Service -Name "LTService" -ErrorAction SilentlyContinue) { Write-Host "CWA service exists. Launching script..." # kill N-Able tasks $tasks = @( "PME.Agent", "FileCacheServiceAgent", "RequestHandlerAgent", "EcosystemAgent", "EcosystemAgentMaintenance", "ASupSrvc", "BASupSrvc", "BASupSrvcCnfg", "BASupSrvcUpdater", "Au_", "winagent", "WebProtection", "TCLauncherHelper", "TakeControlRDLdr", "TakeControlRDViewer", "SolarWinds.MSP.Ecosystem.WindowsAgent", "SolarWinds.MSP.Ecosystem.WindowsAgentMaint" ) foreach ($task in $tasks) { Get-Process -Name $task -ErrorAction SilentlyContinue | Stop-Process -Force -ErrorAction SilentlyContinue } # disable N-Able services $services = @( "PME.Agent.PmeService", "SolarWinds.MSP.CacheService", "SolarWinds.MSP.RpcServerService", "SolarWinds.MSP.Ecosystem.WindowsAgent", "SolarWinds.MSP.Ecosystem.WindowsAgentMaint", "BASupportExpressStandaloneService_LOGICnow", "BASupportExpressSrvcUpdater_LOGICnow", "Advanced Monitoring Agent", "EcosystemAgent", "EcosystemAgentMaintenance", "WebProtection" ) foreach ($service in $services) { Set-Service -Name $service -StartupType Disabled -ErrorAction SilentlyContinue } # Remove N-able install locations, also removes them from services.msc Remove-Item "C:\Program Files\Advanced Monitoring Agent Web Protection\" -recurse -force -ErrorAction SilentlyContinue Remove-Item "C:\Program Files (x86)\Advanced Monitoring Agent GP\" -recurse -force -ErrorAction SilentlyContinue Remove-Item "C:\Program Files (x86)\Advanced Monitoring Agent\" -recurse -force -ErrorAction SilentlyContinue Remove-Item "C:\Program Files (x86)\Take Control Agent\" -recurse -force -ErrorAction SilentlyContinue Remove-Item "C:\Program Files (x86)\BeAnywhere Support Express\" -recurse -force -ErrorAction SilentlyContinue Remove-Item "C:\Program Files (x86)\N-Able Technologies\" -recurse -force -ErrorAction SilentlyContinue Remove-Item "C:\Program Files (x86)\SolarWinds MSP\" -recurse -force -ErrorAction SilentlyContinue Remove-Item "C:\ProgramData\AdvancedMonitoringAgentWebProtection\" -recurse -force -ErrorAction SilentlyContinue Remove-Item "C:\ProgramData\GetSupportService_Common_LOGICnow\" -recurse -force -ErrorAction SilentlyContinue Remove-Item "C:\ProgramData\GetSupportService_Common\" -recurse -force -ErrorAction SilentlyContinue Remove-Item "C:\ProgramData\GetSupportService_LOGICnow\" -recurse -force -ErrorAction SilentlyContinue Remove-Item "C:\ProgramData\GetSupportService\" -recurse -force -ErrorAction SilentlyContinue Remove-Item "C:\ProgramData\MspPlatform\" -recurse -force -ErrorAction SilentlyContinue Remove-Item "C:\ProgramData\MSPEcosystem\" -recurse -force -ErrorAction SilentlyContinue Remove-Item "C:\ProgramData\SolarWinds MSP\" -recurse -force -ErrorAction SilentlyContinue Remove-Item "C:\ProgramData\N-able\" -recurse -force -ErrorAction SilentlyContinue Remove-Item "C:\ProgramData\N-Able Technologies\" -recurse -force -ErrorAction SilentlyContinue # Check if Paths still exist $paths = @("C:\Program Files\Advanced Monitoring Agent Web Protection\", "C:\Program Files (x86)\Advanced Monitoring Agent GP\", "C:\Program Files (x86)\Advanced Monitoring Agent\", "C:\Program Files (x86)\Take Control Agent\", "C:\Program Files (x86)\BeAnywhere Support Express\", "C:\Program Files (x86)\N-Able Technologies\", "C:\ProgramData\AdvancedMonitoringAgentWebProtection\", "C:\ProgramData\GetSupportService_Common_LOGICnow\", "C:\ProgramData\GetSupportService_Common\", "C:\ProgramData\GetSupportService_LOGICnow\", "C:\ProgramData\GetSupportService\", "C:\ProgramData\MspPlatform\", "C:\ProgramData\MSPEcosystem\", "C:\ProgramData\SolarWinds MSP\", "C:\ProgramData\N-able\", "C:\ProgramData\N-Able Technologies\" ) foreach ($path in $paths) { if (Test-Path $path) { Write-Host "Path $path still exists. Reboot and relaunch the script to finish deletion" } else {} } } else { Write-Host "CWA not found. Stopping Script." }