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

Deploying Desktop Client via RMM tools

Written by Owen Parry

Updated at February 25th, 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

Deploying Roaming Client or Agent via RMM Tools Download the Latest Client Location Specific Installers Deploy the Generic installer with the command line option. Deploy the Location-Specific installer with the command-line options. Deployment via PowerShell Script (Example) Deployment via Intune (Example)

Deploying Roaming Client or Agent via RMM Tools


This article provides step-by-step instructions for deploying the Cyber Fox DNS roaming client or agent using Remote Monitoring and Management (RMM) or other deployment tools. Follow these guidelines to ensure a smooth and efficient deployment process.

 

Download the Latest Client


Download the latest client from the following link:

  1. A Generic Installer that you will supply the location key via the command line: Generic Installer  
     
  2. The Specific installer that you download from the company, location, or device on the portal that should look like: dns_client_[companyidhere].exe
     

Location Specific Installers

If you are downloading the location-specific installer, ensure that the executable is downloaded per client site and do not change the name of the executable. The location key in the name will be used to assign it to the correct location without any command line requirements.

 

 

Deploy the Generic installer with the command line option.


Use the following command to deploy the client via your RMM tool of choice:

dns-latest.exe /SP- /SUPPRESSMSGBOXES /VERYSILENT /NORESTART /COMPANY_ID=[company id]

Command Line Options Explained

  • /SP-: Suppresses the “Do you wish to continue?” prompt.
  • /SUPPRESSMSGBOXES: Suppresses message boxes during installation.
  • /VERYSILENT: Eliminates any need for user interaction during the installation process.
  • /NORESTART: Suppresses any need for a restart after the installation is completed.
  • /COMPANY_ID=[company id]: Supply the location company ID to the installer.

If your RMM supports variables, you can insert the company ID as a variable for wider deployments using a single deployment script. 

 

Deploy the Location-Specific installer with the command-line options.


Use the following command to deploy the client via your RMM tool of choice when using the client's location-specific installer file:

dns_client_[CompanyIDhere].exe /SP- /SUPPRESSMSGBOXES /VERYSILENT /NORESTART

Command Line Options Explained

  • /SP-: Suppresses the “Do you wish to continue?” prompt.
  • /SUPPRESSMSGBOXES: Suppresses message boxes during installation.
  • /VERYSILENT: Eliminates any need for user interaction during the installation process.
  • /NORESTART: Suppresses any need for a restart after the installation is completed.

If you use the location-specific installer without any command line options during deployment, the end user will be prompted with a dialog box to continue the installation. We highly recommend installation using the above command line options to install silently. 

 

Deployment via PowerShell Script (Example)


Here is a PowerShell script that downloads the Cyber Fox DNS client and deploys it using the Company ID as a variable:

# 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
  Installs the CyberFOX DNS Filter
  #>

# Run powershell in a clean install
# PowerShell -ExecutionPolicy Bypass

# Set $DebugPrintEnabled = 1 to enabled debug log printing to see what's going on.
$DebugPrintEnabled = 1
# Replace ENTER COMPANY ID HERE with the actual Company ID from the Company, Location, or Roaming Device
$companyID = "ENTER COMPANY ID HERE"
#Installation Variables - Do Not Modify
$InstallerName =  "dns-latest.exe"
$InstallerPath = Join-Path $Env:TMP $InstallerName
$DownloadBase = "https://cdn.passwordboss.com/dns-client"
$DownloadURL = $DownloadBase + "/production/" + $InstallerName
$ScriptFailed = "CyberFOX DNS Filter agent failed to install"
$ServiceName = "CyberFOX DNS over HTTPS Service"
# Logging Variables - Do Not Modify
$LogBaseName = "DNSFilterInstall.log"
$LogStamp    = Get-Date -Format "yyyy-MM-dd_HHmmss"
$LogFileName = "${LogBaseName}_${LogStamp}"
$LogFilePath = Join-Path $Env:TEMP $LogFileName

function Get-TimeStamp {
    return "[{0:MM/dd/yy} {0:HH:mm:ss}]" -f (Get-Date)
}

function Confirm-ServiceExists ($service) {
    if (Get-Service $service -ErrorAction SilentlyContinue) {
        return $true
    }
    
    return $false
}

function Debug-Print ($msg) {
    if ($DebugPrintEnabled -eq 1) {
        Write-Host "$(Get-TimeStamp) [DEBUG] $msg"
    }
}

function Get-Installer {
    Debug-Print("Downloading installer...")
    $WebClient = New-Object System.Net.WebClient
    
    try {
        $WebClient.DownloadFile($DownloadURL, $InstallerPath)
    } catch {
        $ErrorMessage = $_.Exception.Message
        Write-Host "$(Get-TimeStamp) $ErrorMessage"
    }
    
    if ( ! (Test-Path $InstallerPath)) {
        $DownloadError = "Failed to download the CyberFOX DNS Filter Client Installer from $DownloadURL"
        Write-Host "$(Get-TimeStamp) $DownloadError"
        throw $ScriptFailed
    }
    
    Debug-Print("Installer downloaded to $InstallerPath...")
}

function Install-Agent () {
    Debug-Print("Executing installer...")

    $LogArgument = "/LOG=`"$LogFilePath`""

    $Arguments = "/SP- /SUPPRESSMSGBOXES /VERYSILENT /NORESTART /COMPANY_ID=$companyID $LogArgument"

    #Debug-Print("Installer arguments: $Arguments")
    Debug-Print("Installer log path: $LogFilePath")

    Start-Process $InstallerPath -ArgumentList $Arguments -Wait
}
		
function Verify-Installation () {
    Debug-Print("Verifying Installation...")
    
    if ( ! (Confirm-ServiceExists($ServiceName))) {
        $VerificationError = "The CyberFOXDNSAgent service is not running. Installation failed!"
        Write-Host "$(Get-TimeStamp) $VerificationError"
        
        throw $ScriptFailed
    }
}

function Cleanup-Installer () {
Debug-Print("Removing Installation Files...")

Remove-Item $downloadPath
}

function main () { 
Debug-Print("Checking for Company ID...")
    
    if ($companyID -eq "ENTER COMPANY ID HERE" -Or $LICENSE_KEY -eq "") {
        Write-Warning "$(Get-TimeStamp) LICENSE_KEY not set, exiting script!"
        exit 1
    }
	
	Write-Host "$(Get-TimeStamp) CompanyID: " $companyID
	
    Get-Installer
    Install-Agent
    Verify-Installation
	Cleanup-Installer
    
    Write-Host "$(Get-TimeStamp) CyberFOX DNS Filter Client successfully installed!"
}

try
{
    main
} catch {
    $ErrorMessage = $_.Exception.Message
    Write-Host "$(Get-TimeStamp) $ErrorMessage"
    exit 1
}

DNS_Deploy_2026.ps1

Instructions:

  1. Replace ENTER COMPANY ID HERE with the actual Company ID from the Company, Location, or Roaming Device.
     
  2. Save the script as a .ps1 file.
     
  3. Run the script on the target machine in an elevated PowerShell.
     

This script will download the latest Cyber Fox DNS client, install it using the specified Company ID, and then clean up the downloaded file. You can modify and use this example script in the RMM or deployment tool of your choice. 

 

Deployment via Intune (Example)


To install the Cyber Fox DNS roaming client via Intune, follow these steps:

Step 1: Prepare the Installation Package

  1. Download the latest client-specific installer that you downloaded from the location on the portal, which should look like: dns_client_[companyIDhere].exe
  2. Ensure that the executable is downloaded per client site. Do not change the name of the executable.

Step 2: Convert the Executable to .intunewin Format

  1. Download the Intune Win32 Content Prep Tool from Microsoft and follow the instructions.
  2. Use the tool to convert the executable file to .intunewin format. Run the following command:
IntuneWinAppUtil.exe -c <source_folder> -s dns_client_[Company ID Here].exe -o <output_folder>
  1. The tool will generate a .intunewin file in the specified output folder.

Step 3: Create a Win32 App in Intune

  1. Open the Microsoft Endpoint Manager admin center.
  2. Navigate to Apps > Windows > Add.
  3. Select App type as Windows app (Win32).

Step 4: Configure App Information

  1. Upload the .intunewin file.
  2. In the App information section, provide the necessary details such as name, description, publisher, etc.

Step 5: Configure Program

  1. In the Program section, enter the following install command:
Using the Location Specific installer:
dns_client_[locationkeyhere].exe /SP- /SUPPRESSMSGBOXES /VERYSILENT /NORESTART

Using the Generic Installer
dns-latest.exe /SP- /SUPPRESSMSGBOXES /VERYSILENT /NORESTART /COMPANY_ID=[company id]
  1. Enter the uninstall command if needed (e.g., dns_client_[companyidhere].exe /uninstall).
     
  2. The rest of the options, the default options, are fine, adjust as needed for your environment.

Step 6: Configure Requirements

  1. Specify the requirements for app installation, including operating system architecture and the minimum OS version.

Step 7: Configure Detection Rules

  1. Set up detection rules to ensure the app is installed correctly. You can use the file detection method with the following:
    1. Rule type: File
    2. Path: C:\Program Files\CyberFOX DNS Client
    3. File or folder: client.exe
    4. Detection Method: File or Folder exists
    5. Associated with a 32-bit app on a 64-bit Client: No

Step 8: Assign the App

  1. Assign the app to the required groups or devices.

Step 9: Review and Create

  1. Review the configuration and create the app.
agent deployment installation client desktop powershell

Was this article helpful?

Yes
No
Give feedback about this article

Related Articles

  • Roaming Devices
  • Agent-Based Devices
  • Understanding DNS over HTTPS (DoH)
  • DNS over TLS (DoT): Secure, Encrypted DNS with UUID Tracking
  • Uninstalling the CyberFOX DNS Roaming Client
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