Skip to content

Documentation / Knowledge Base

Enclave appears installed twice on Windows

Symptoms

After updating Enclave, two entries appear in Apps > Installed apps (also known as Programs and Features or Add or Remove Programs on older versions of Windows):

Entry Installer type
Enclave Added by the Interactive GUI installer, or by the Unattended EXE installer
Enclave Agent Added by the Unattended MSI installer

Only one copy of Enclave is actually installed on the system. Enclave is functioning correctly and running the newer version.

Cause

Enclave provides two installation methods on Windows. The interactive installer (setup.exe) is designed for individual workstations and includes a GUI that walks the user through setup where there is no centralised management tooling available, and an unattended installer is also available as either an MSI package or EXE, designed for automated deployment at scale via RMM platforms, Group Policy, or via the Enclave PowerShell deployment script. The two methods also differ in how updates are handled: the interactive installer prompts end users when a new version is available, whereas unattended installations suppress update notifications and expect updates to be managed by an administrator's deployment tooling. See Automatic Updates for more details.

Each installer registers itself under a different name and product code in the Windows registry:

Interactive installer Unattended EXE Unattended MSI
Product display name Enclave Enclave Enclave Agent
Product code {fec09b33-daa5-40ad-86c8-a02f50cd35f2} Unique per build Unique per build
Registry location HKLM\...\Uninstall\ HKLM\...\WOW6432Node\...\Uninstall\ HKLM\...\Uninstall\

The interactive installer checks for an existing unattended installation and blocks if one is found. However, the unattended MSI does not check for an existing interactive or unattended EXE installation. When the unattended MSI runs on a system where Enclave was originally installed by either the interactive installer or the unattended EXE, it successfully installs the new version but leaves the previous installer's registry entry behind.

The result is two entries pointing to the same single installation of Enclave. Both reference the same location on disk (C:\Program Files\Enclave Networks\Enclave\Agent\bin\enclave.exe) and only the newer version is present. This is an oversight and we plan to resolve this issue in a future version of the unattended installer.

How to confirm

First, verify that the unattended installer is present and Enclave is running the expected version. Open an administrator Command Prompt and run: enclave version. Confirm the version shown matches the version listed against the Enclave Agent entry in Apps > Installed apps, if it does not and there are two versions of Enclave installed, please contact the Enclave support team.

If the version shown by enclave version matches the reported version of Enclave Agent in Installed Apps, the orphaned entry is from a previous installer type. There are two possible sources depending on how Enclave was originally installed.

Check for an orphaned interactive installer entry

reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{fec09b33-daa5-40ad-86c8-a02f50cd35f2}" /v DisplayName
  • If this returns Enclave, that is the orphaned entry from the interactive installer, which is now superseded by the unattended installation. Follow Resolution — Interactive installer below to remove it.

Check for an orphaned unattended EXE entry

If the interactive installer key was not found, the orphaned entry may be from a previous installation using the unattended EXE. Because the unattended EXE generates a unique product code per build, search for it by name:

reg query "HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall" /s /f "Enclave"

If this returns a key with DisplayName: Enclave and a BundleCachePath referencing enclave-installer-win-x64.exe in the Package Cache, that is the orphaned entry from the unattended EXE. Note the GUID shown in the key path and follow Resolution — Unattended EXE below to remove it.

Resolution

No restart is required and Enclave does not need to be stopped. After removing the orphaned entry, refresh Apps > Installed apps to confirm that only the Enclave Agent entry remains.

Interactive installer

If the confirmation steps identified an orphaned interactive installer entry, remove it by running:

reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{fec09b33-daa5-40ad-86c8-a02f50cd35f2}" /f

Unattended EXE

If the confirmation steps identified an orphaned unattended EXE entry, remove it using the GUID shown in the registry search results. For example, if the search returned a key under {4690cf85-c134-4525-a21e-b404f664ffe5}:

reg delete "HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{4690cf85-c134-4525-a21e-b404f664ffe5}" /f

Replace the GUID with the one found on your system.

Applying the fix at scale

If you are managing multiple endpoints and need to clean up orphaned entries across your fleet, you can add the following script to your RMM platform as a remediation task, or append it to your existing Enclave deployment script:

# Remove the interactive installer's orphaned registry entry, if present
$interactiveInstallerKey = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{fec09b33-daa5-40ad-86c8-a02f50cd35f2}"

if (Test-Path $interactiveInstallerKey) {
    Remove-Item -Path $interactiveInstallerKey -Force
    Write-Host "Removed orphaned 'Enclave' entry (interactive installer)."
}

# Remove the unattended EXE's orphaned registry entry, if present
$wow6432Uninstall = "HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall"

Get-ChildItem -Path $wow6432Uninstall | ForEach-Object {
    $displayName = (Get-ItemProperty -Path $_.PSPath -Name "DisplayName" -ErrorAction SilentlyContinue).DisplayName
    $bundleCache = (Get-ItemProperty -Path $_.PSPath -Name "BundleCachePath" -ErrorAction SilentlyContinue).BundleCachePath

    if ($displayName -eq "Enclave" -and $bundleCache -like "*enclave-installer*") {
        Remove-Item -Path $_.PSPath -Recurse -Force
        Write-Host "Removed orphaned 'Enclave' entry (unattended EXE): $($_.PSChildName)"
    }
}

This is safe to run on all endpoints. On systems without an orphaned entry, the script will do nothing.


Having problems? Contact us at support@enclave.io or visit our support options.

Published July 29, 2026