US English (US)
FR French
DE German
ES Spanish
IT Italian
NL Dutch
JP Japanese

Contact Us

If you still have questions or prefer to get help directly from an agent, please submit a request.
We’ll get back to you as soon as possible.

  • Contact Us
English (US)
US English (US)
FR French
DE German
ES Spanish
IT Italian
NL Dutch
JP Japanese
  • Home
  • CyberFOX DNS Filtering
  • Roaming Clients
  • Deployment

Uninstalling the CyberFOX DNS Roaming Client

Learn how to effectively uninstall the CyberFOX DNS Roaming Client to improve system performance and regain control of your network settings.

Written by Owen Parry

Updated at February 27th, 2026

Contact Us

If you still have questions or prefer to get help directly from an agent, please submit a request.
We’ll get back to you as soon as possible.

  • AutoElevate Knowledgebase
    New to AutoElevate? START HERE General & Troubleshooting Managing Rules Integrations Announcements FAQ Sales & Marketing
  • Password Boss Knowledgebase
    Using Password Boss Business Administration Password Boss Partner Documents
  • CyberFOX DNS Filtering
    Getting Started Filtering Policies Company and Location Setup Roaming Clients Reporting and Logging Troubleshooting
  • Marketing Toolkit
    MSP Marketing & Education Toolkit
  • Changelogs for Autoelevate and Password Boss
  • CyberFOX Product Roadmap
  • Current Status
+ More

Table of Contents

Overview What the Uninstall Process Does Platform‑Specific Uninstall Steps Windows (Standard Uninstall Command) Windows (Manual Uninstall) Advanced Use Cases RMM / MSP Automation Hybrid Environments Troubleshooting Agent Still Appears in Portal DNS Still Appears Redirected Uninstall via Powershell Security & Sync Behavior Related Articles

Overview

This article explains how to silently and cleanly uninstall the CyberFOX DNS Roaming Client from Windows devices. Uninstalling the agent removes DNS policy enforcement and removes the device from active monitoring in the CyberFOX DNS Filtering Portal.

 

What the Uninstall Process Does


Removing the DNS Roaming Client:

  • Stops DNS interception and routing through CyberFOX Filtering.
  • Removes the agent service (CyberFOX DNS Client).
  • Deregisters the device from the DNS Filtering dashboard.
  • Restores the system's default DNS resolver behavior.

Use the uninstall method below when offboarding devices, repurposing machines, or migrating to a new environment.

 

Platform‑Specific Uninstall Steps


Windows (Standard Uninstall Command)

The client can be removed silently using the following command:

"%ProgramFiles%\CyberFOX DNS Client\unins000.exe" /SP /SUPPRESSMSGBOXES /VERYSILENT /NORESTART

Execution notes:

  • Must be run with administrative privileges.
  • The device must be restarted to fully release DNS hooks (RMM can trigger later).
  • Recommended for RMM automation, PowerShell, batch scripts, or GPO.

Windows (Manual Uninstall)

  1. Open Control Panel → Programs and Features.
  2. Locate CyberFOX DNS Client.
  3. Click Uninstall.
  4. Restart the device.

 

Advanced Use Cases


RMM / MSP Automation

  • Use global scripts to remove stale clients.
  • Pair uninstall commands with a hostname check to confirm device identity.
  • Schedule bulk customer migrations using automated tasks.

Hybrid Environments

  • Use uninstall routines during OS imaging or workstation refresh cycles.
  • Validate removal by checking that outbound DNS no longer resolves via the CyberFOX network.

 

Troubleshooting


Agent Still Appears in Portal

  • Portal may take up to 5 minutes to refresh device status.
  • Ensure the device is online for its final heartbeat before uninstall.
  • Manually remove the stale entry under Roaming Clients if needed.

DNS Still Appears Redirected

  • Confirm reboot was performed.
  • Verify no GPO or third‑party agent is forcing DNS.
  • Check network adapter DNS settings for static overrides.

Uninstall via Powershell

  • Confirm Program Files path uses the correct architecture.
  • Run PowerShell as administrator:  DNS_Uninstall.ps1
    # Copyright (c) 2026 CyberFOX LLC
    # All rights reserved.
    #
    # Redistribution and use in source and binary forms, with or without
    # modification, are permitted provided that the following conditions are met:
    #    * Redistributions of source code must retain the above copyright
    #      notice, this list of conditions and the following disclaimer.
    #    * Redistributions in binary form must reproduce the above copyright
    #      notice, this list of conditions and the following disclaimer in the
    #      documentation and/or other materials provided with the distribution.
    #    * Neither the name of the AutoElevate nor the names of its contributors
    #      may be used to endorse or promote products derived from this software
    #      without specific prior written permission.
    #
    # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
    # DISCLAIMED. IN NO EVENT SHALL OPENDNS BE LIABLE FOR ANY DIRECT, INDIRECT,
    # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
    # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
    # OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
    # LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
    # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    # EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    <#
    .SYNOPSIS
      Uninstalls CyberFOX DNS Client using unins000.exe after stopping services.
    .DESCRIPTION
      - Checks for and stops:
          "CyberFOX DNS over HTTPS Proxy Updater Service"
          "CyberFOX DNS over HTTPS Service"
      - Runs:
          "C:\Program Files\CyberFOX DNS Client\unins000.exe" /VERYSILENT /SUPPRESSMSGBOXES /NORESTART
      - Returns automation-friendly exit codes
    #>
    
    # -------------------------
    # Configuration
    # -------------------------
    $UninstallerPath = "C:\Program Files\CyberFOX DNS Client\unins000.exe"
    $UninstallArgs   = "/VERYSILENT /SUPPRESSMSGBOXES /NORESTART"
    
    $ServiceNames = @(
      "CyberFOX DNS over HTTPS Proxy Updater Service",
      "CyberFOX DNS over HTTPS Service"
    ) # [1](https://support.cyberfox.com/dns-rc/agent-based-devices)[2](https://passboss2-my.sharepoint.com/personal/oparry_cyberfox_com/Documents/Microsoft%20Teams%20Chat%20Files/CyberFOX%20DNS%20Client%200.0.5%20Robopack%20App%20Documentation.pdf?web=1)
    
    # Exit codes
    $EXIT_SUCCESS        = 0
    $EXIT_NOT_INSTALLED  = 0   # treat as success for automation
    $EXIT_UNINSTALL_FAIL = 1
    $EXIT_SERVICE_FAIL   = 2
    
    function Get-TimeStamp { return "[{0:MM/dd/yy} {0:HH:mm:ss}]" -f (Get-Date) }
    
    function Stop-ServiceIfExists {
      param(
        [Parameter(Mandatory=$true)][string]$Name,
        [int]$TimeoutSeconds = 30
      )
    
      $svc = Get-Service -Name $Name -ErrorAction SilentlyContinue
      if ($null -eq $svc) {
        Write-Host "$(Get-TimeStamp) Service not found (OK): $Name"
        return $true
      }
    
      Write-Host "$(Get-TimeStamp) Found service: $Name (Status: $($svc.Status))"
      if ($svc.Status -eq 'Stopped') {
        Write-Host "$(Get-TimeStamp) Service already stopped: $Name"
        return $true
      }
    
      try {
        Write-Host "$(Get-TimeStamp) Stopping service: $Name"
        Stop-Service -Name $Name -Force -ErrorAction Stop
    
        # Wait up to TimeoutSeconds for it to stop
        $deadline = (Get-Date).AddSeconds($TimeoutSeconds)
        do {
          Start-Sleep -Seconds 2
          $svc.Refresh()
          $svc = Get-Service -Name $Name -ErrorAction SilentlyContinue
          if ($null -eq $svc) { break } # service disappeared during uninstall/stop attempt
        } while ($svc.Status -ne 'Stopped' -and (Get-Date) -lt $deadline)
    
        $svc = Get-Service -Name $Name -ErrorAction SilentlyContinue
        if ($null -ne $svc -and $svc.Status -ne 'Stopped') {
          Write-Host "$(Get-TimeStamp) ERROR: Service did not stop in time: $Name"
          return $false
        }
    
        Write-Host "$(Get-TimeStamp) Service stopped: $Name"
        return $true
      }
      catch {
        Write-Host "$(Get-TimeStamp) WARN: Failed to stop service $Name. $($_.Exception.Message)"
        return $false
      }
    }
    
    # -------------------------
    # Main
    # -------------------------
    Write-Host "$(Get-TimeStamp) Starting CyberFOX DNS Client uninstall..."
    
    # If the uninstaller isn't present, treat as already uninstalled
    if (-not (Test-Path $UninstallerPath)) {
      Write-Host "$(Get-TimeStamp) Uninstaller not found: $UninstallerPath"
      Write-Host "$(Get-TimeStamp) Application may already be uninstalled."
      exit $EXIT_NOT_INSTALLED
    }
    
    # Stop services before uninstall
    $allStopped = $true
    foreach ($svcName in $ServiceNames) {
      if (-not (Stop-ServiceIfExists -Name $svcName -TimeoutSeconds 30)) {
        $allStopped = $false
      }
    }
    
    if (-not $allStopped) {
      Write-Host "$(Get-TimeStamp) ERROR: One or more services could not be stopped. Aborting uninstall."
      exit $EXIT_SERVICE_FAIL
    }
    
    # Run the uninstaller silently
    try {
      Write-Host "$(Get-TimeStamp) Running uninstaller: $UninstallerPath $UninstallArgs"
      $p = Start-Process -FilePath $UninstallerPath -ArgumentList $UninstallArgs -Wait -PassThru -WindowStyle Hidden
    
      Write-Host "$(Get-TimeStamp) Uninstaller exit code: $($p.ExitCode)"
    
      if ($p.ExitCode -ne 0) {
        Write-Host "$(Get-TimeStamp) ERROR: Uninstall reported failure (exit code $($p.ExitCode))."
        exit $EXIT_UNINSTALL_FAIL
      }
    
      Write-Host "$(Get-TimeStamp) CyberFOX DNS Client successfully uninstalled."
      exit $EXIT_SUCCESS
    }
    catch {
      Write-Host "$(Get-TimeStamp) ERROR: Uninstall process failed to run. $($_.Exception.Message)"
      exit $EXIT_UNINSTALL_FAIL
    }
    
    
  • Verify service is not locked by security tools.

Security & Sync Behavior

  • Once uninstalled, the device no longer sends DNS telemetry.
  • Policy enforcement stops immediately after the agent service is removed.
  • No personal data is retained on the endpoint after uninstall.
  • Deregistration does not affect other CyberFOX products (Password Boss, AutoElevate, etc.).

Related Articles

  • Deploying Roaming Client via RMM Tools
  • Troubleshooting the Roaming Client
  • DNS Filtering Overview
     
dns uninstall remove dns roaming client dns filtering uninstall dns agent cleanup rmm uninstall silent uninstall cyberfox dns client removal endpoint offboarding windows uninstall dns service removal roaming client deregistration dns troubleshooting cyberfox support dns enforcement removal uninstall script dns agent silent remove program files uninstall secure uninstall dns cleanup roamin client removal

Was this article helpful?

Yes
No
Give feedback about this article

Related Articles

  • Configure DNS for Locations
  • Uninstalling Agent via PowerShell
Request a Demo
  • Get Pricing
  • Start Trial
  • Contact
  • Support Center
  • Login
Solutions
AutoElevate
  • AutoElevate Overview
  • Remove Admin Privilege
  • Just-in-Time Admin
  • Blocker
Password Manager
  • Password Manager Overview
  • Features
DNS Filtering
  • DNS Filtering Overview
MSPs
IT Departments
  • Overview
  • State and Local Government
  • K-12 Education
  • Manufacturing
  • Higher Education
Resources
  • Resource Center
  • Group Demos
  • Events
  • The Simple 7™
Company
  • About
  • Leadership
  • Culture & Values
  • News & Press
  • Awards
  • Partnerships
  • Referral Program
  • Trust Center
CyberFox Logo

CALL US (813) 578-8200

© 2025 CYBERFOX LLC ALL RIGHTS RESERVED | Privacy Policy | Terms of Service | Sitemap


Knowledge Base Software powered by Helpjuice

//-------------------------------------------------------------------- // RESOLVE DESTINATION URL //-------------------------------------------------------------------- function resolveRedirect(path) { if (STATUS_SLUGS.includes(path)) { return "https://status.cyberfox.com"; } if (REDIRECTS.hasOwnProperty(path)) { return REDIRECTS[path]; } return null; } //-------------------------------------------------------------------- // CLICK HANDLER (Capture Phase) //-------------------------------------------------------------------- document.addEventListener( "click", function (e) { var link = e.target.closest && e.target.closest(LINK_SELECTOR); if (!link) return; // Let modified clicks behave normally (open in new tab, etc.) if (e.metaKey || e.ctrlKey || e.shiftKey || e.altKey) return; // Only left click if (e.button !== 0) return; var href = link.getAttribute("href") || link.href; if (!href || href.startsWith("#")) return; var path = normalizePath(href); var target = resolveRedirect(path); if (!target) return; // Intercept click BEFORE Helpjuice SPA/PJAX e.preventDefault(); e.stopPropagation(); if (e.stopImmediatePropagation) e.stopImmediatePropagation(); window.open(target, "_blank", "noopener"); }, true // capture ); //-------------------------------------------------------------------- // KEYBOARD ACCESSIBILITY (Enter / Space) //-------------------------------------------------------------------- document.addEventListener( "keydown", function (e) { if (e.key !== "Enter" && e.key !== " ") return; var link = document.activeElement.closest && document.activeElement.closest(LINK_SELECTOR); if (!link) return; var href = link.getAttribute("href") || link.href; if (!href || href.startsWith("#")) return; var path = normalizePath(href); var target = resolveRedirect(path); if (!target) return; e.preventDefault(); e.stopPropagation(); if (e.stopImmediatePropagation) e.stopImmediatePropagation(); window.open(target, "_blank", "noopener"); }, true ); })();
Expand