Connect to the user's computer through ConnectWise Using Backstage. 


Open Powershell and Run the script below to see Alert Logic installed among the installed aapplications. 

Get-WmiObject -Class Win32_Product |
Select-Object Name, Version, Vendor |
Format-Table -AutoSize


In the same PowerShell window Run the code below to install Alert Logic and all dependencies. Open PowerShell again and Then Re-Run the script above to see Alert Logic removed from the list of installed applications.

try
{
$script = @'
@echo off
setlocal enabledelayedexpansion
goto:checkPermissions

:checkPermissions
echo Administrative permissions required. Detecting permissions...
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"

if %errorLevel% == 0 (
    echo Success: Administrative permissions confirmed.
    call :uninstall Barkly , BarklyLogo.ico , barkly
    call :uninstall "Alert Logic" , AlertLogicLogo.ico , alep
    goto :end
) else (
    echo Failure: Please run this script with administrative permissions.
    EXIT /B 1
)

#-------------------Edit by John Magin-------------------

set SERVICE=al_agent
set WAIT_TIME=5
set /a TIMEOUT=60
set /a ELAPSED=0

sc stop al_agent
timeout /t %WAIT_TIME% >nul
 
:CHECK_STATUS
sc query %SERVICE% | findstr /I "STOP_PENDING" >nul
if %errorlevel%==0 (
    echo Service %SERVICE% is stopping. Waiting...
    timeout /t %WAIT_TIME% >nul
    set /a ELAPSED+=%WAIT_TIME%
    if %ELAPSED% GEQ %TIMEOUT% (
        echo Timeout reached. Service did not stop.
        goto END
    )
    goto CHECK_STATUS
)

sc query %SERVICE% | findstr /I "STOPPED" >nul
if %errorlevel%==0 (
    echo Service %SERVICE% has stopped.
    goto END
)

echo Service %SERVICE% is not in STOP_PENDING or STOPPED state.
timeout /t %WAIT_TIME% >nul
set /a ELAPSED+=%WAIT_TIME%
if %ELAPSED% GEQ %TIMEOUT% (
    echo Timeout reached. Service did not stop.
    goto END
)
goto CHECK_STATUS

del %ProgramFiles%\CommonFiles\Alertlogic\host_crt.pem
del %ProgramFiles%\CommonFiles\Alertlogic\host_key.pem

#-------------------End Edit-------------------

:uninstall
setlocal enabledelayedexpansion
set NAME=%~1
set ICOFILE=%~2
set SERVICEPREFIX=%~3

reg Query "HKLM\Hardware\Description\System\CentralProcessor\0" | %SYSTEMROOT%\system32\find.exe /i "x86" > NUL && set OS=32BIT || set OS=64BIT

if %OS%==32BIT set INSTALLDIR=%PROGRAMFILES%\%NAME%
if %OS%==64BIT set INSTALLDIR=%PROGRAMFILES(X86)%\%NAME%

FOR /f "tokens=2" %%A IN ('sc query type^= service state^= all ^| %SYSTEMROOT%\system32\find.exe /i "SERVICE_NAME: %SERVICEPREFIX%"') DO (
    SET SERVICE_NAME=%%A
    echo **** Stopping service !SERVICE_NAME! ****
    sc config !SERVICE_NAME! start= disabled
    sc stop !SERVICE_NAME!
    echo **** Removing RapidVisor service ****
    sc delete !SERVICE_NAME!
    echo Removing HKLM\SYSTEM\ControlSet001\services\!SERVICE_NAME!
    reg delete "HKLM\SYSTEM\ControlSet001\services\!SERVICE_NAME!" /f
    echo Removing HKLM\SYSTEM\ControlSet002\services\!SERVICE_NAME!
    reg delete "HKLM\SYSTEM\ControlSet002\services\!SERVICE_NAME!" /f
    echo Removing HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\eventlog\Application\Barkly RapidVisor
    reg delete "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\eventlog\Application\Barkly RapidVisor" /f
    echo Removing HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\eventlog\Application\!SERVICE_NAME!
    reg delete "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\eventlog\Application\!SERVICE_NAME!" /f
    echo Removing HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\services\eventlog\Application\Barkly RapidVisor
    reg delete "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\services\eventlog\Application\Barkly RapidVisor" /f
    echo Removing HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\services\eventlog\Application\!SERVICE_NAME!
    reg delete "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\services\eventlog\Application\!SERVICE_NAME!" /f
)

set DRIVERS=boscmflt bospsflt bosfsflt bosincidentflt Illuminate RV-OSMonitor RapidVisor
echo **** Stopping Drivers ****
for %%b in (%DRIVERS%) do (
  sc stop %%b
)

echo **** Removing Drivers ****
for %%b in (%DRIVERS%) do (
  set DRIVER=%%b
  sc delete !DRIVER!
  echo Removing HKLM\SYSTEM\ControlSet001\services\!DRIVER!
  reg delete "HKLM\SYSTEM\ControlSet001\services\!DRIVER!" /f
  echo Removing HKLM\SYSTEM\ControlSet002\services\!DRIVER!
  reg delete "HKLM\SYSTEM\ControlSet002\services\!DRIVER!" /f
)

echo **** Removing Registry Keys ****
for /f "delims=" %%i in ('REG QUERY HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall /F "%NAME% Endpoint Protection" /D /S ^| FINDSTR /R /B /C:"HKEY_"') do echo %%i & reg delete %%i /f
for /f "delims=" %%i in ('REG QUERY HKCR\Installer\Products /F "%ICOFILE%" /D /S ^| FINDSTR /R /B /C:"HKEY_"') do echo %%i & reg delete %%i /f
for /f "delims=" %%i in ('REG QUERY HKLM\SOFTWARE\Classes\Installer\Products /F "%ICOFILE%" /D /S ^| FINDSTR /R /B /C:"HKEY_"') do echo %%i & reg delete %%i /f
for /f "delims=" %%i in ('REG QUERY HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products /F "%NAME% Endpoint Protection" /D /S ^| FINDSTR /R /B /C:"HKEY_"') do echo %%i & reg delete %%i /f
for /f "delims=" %%i in ('REG QUERY HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components /F "%INSTALLDIR%" /D /S ^| FINDSTR /R /B /C:"HKEY_"') do echo %%i & reg delete %%i /f
for /f "delims=" %%i in ('REG QUERY HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components /F "%NAME%\Extended Endpoint Protection" /D /S ^| FINDSTR /R /B /C:"HKEY_"') do echo %%i & reg delete %%i /f

for /f "delims=" %%a in (
  'REG QUERY HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\Folders /v "*%INSTALLDIR%*" ^| findstr /I /C:"REG_SZ"'
) do (
  for /f "tokens=* delims= " %%b in ("%%a") do set "Value=%%b"
  set "Value=!Value:    REG_SZ=@!"
  for /f "delims=@" %%b in ("!Value!") do (
    echo Removing registry value: %%b
    reg delete HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\Folders /v "%%b\" /f
  )
)

echo Removing HKEY_LOCAL_MACHINE\SOFTWARE\Barkly
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Barkly" /f
echo Removing HKEY_LOCAL_MACHINE\SOFTWARE\Alert Logic\Extended Endpoint Protection
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Alert Logic\Extended Endpoint Protection" /f

echo **** Removing System Files ****
SET DRIVER_LIST=RapidVisor.sys boscmflt.sys bosfsflt.sys bosincidentflt.sys BOsMonDLL.sys BOsMonRuleDLL.sys bospsflt.sys Illuminate.sys VMI.sys RV-OSMonitor.sys
FOR %%a in (%DRIVER_LIST%) DO (
    echo Removing file %SYSTEMROOT%\System32\drivers\%%a
    IF EXIST %SYSTEMROOT%\System32\drivers\%%a del /F %SYSTEMROOT%\System32\drivers\%%a
)

for /F "tokens=2* delims=:" %%a in ('pnputil -e') do (
    for /f "tokens=1 delims= " %%d in ("%%a") do (
        if not %%d==RapidVisor (
            set tempINF=%%d
        )
        if %%d==RapidVisor (
            echo Removing RapidVisor driver package under the Published Name: !tempINF!
            pnputil -f -d !tempINF!
        )
    )
)

echo **** Removing UpgradeCodes ****
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UpgradeCodes\1612EF76BAB35514E98E24FD27E16433" /f
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\UpgradeCodes\1612EF76BAB35514E98E24FD27E16433" /f

echo **** Removing Install Directory ****
IF EXIST "%INSTALLDIR%" rmdir /s /q "%INSTALLDIR%"

EXIT /B 0

:end
echo **** Finished Uninstalling ****
'@
#-------------------Written by John Magin-------------------
$tempFile = "$env:TEMP\embedded_cleanup.cmd"

# Check if NuGet is already installed
$nugetProvider = Get-PackageProvider -Name NuGet -ErrorAction SilentlyContinue

if (-not $nugetProvider) {
    Write-Output "NuGet provider not found. Installing..."
    Install-PackageProvider -Name NuGet -Force -ForceBootstrap -Confirm:$false
} else {
    Write-Output "NuGet provider already installed."
}

# Check if AL Agent is installed
$package = Get-Package -Name "AL Agent" -ErrorAction SilentlyContinue

if ($package) {
    Write-Output "'AL Agent' is installed. Attempting to uninstall..."
    Uninstall-Package -Name "AL Agent" -Force
    Write-Output "Package uninstalled successfully. Continuing..."
} else {
    Write-Output "'AL Agent' is not installed. No action needed."
}

do {
    Start-Sleep -Seconds 2
    $pkg = Get-Package -Name "AL Agent" -ErrorAction SilentlyContinue
} while ($pkg)
Set-Content -Path $tempFile -Value $script -Encoding ASCII
Start-Process -FilePath "cmd.exe" -ArgumentList "/c `"$tempFile`"" -Verb RunAs -WindowStyle Hidden -Wait

exit 0
}

catch{
    $errMsg = $_.Exception.Message
    Write-Error $errMsg
    exit 1
}