Mozilla › Firefox › DNS Over HTTPS
Excluded Domains
Supported on Firefox 75 or later, Firefox 68.7 ESR or later
What it does
If this policy is enabled, the specified domains are excluded from DNS over HTTPS. If this policy is disabled or not configured, no domains are excluded from DNS over HTTPS.
What it writes
- Hive
- HKEY_LOCAL_MACHINE or HKEY_CURRENT_USER
- Registry key
Software\Policies\Mozilla\Firefox\DNSOverHTTPS
Options
| Option | Type | Registry value | Allowed values |
|---|---|---|---|
| List | List of values | Software\Policies\Mozilla\Firefox\DNSOverHTTPS\ExcludedDomains |
Any |
Configure and deploy
Choose a state and the option values; the output below is generated from the template for exactly that.
Enabled · Computer · template defaults
Registry file (.reg)
Windows Registry Editor Version 5.00
[-HKEY_LOCAL_MACHINE\Software\Policies\Mozilla\Firefox\DNSOverHTTPS\ExcludedDomains]
PowerShell
$ErrorActionPreference = 'Stop'
function Set-RegistryValue {
param(
[Parameter(Mandatory = $true)][string] $Path,
[Parameter(Mandatory = $true)][string] $Name,
[Parameter(Mandatory = $true)][string] $PropertyType,
[Parameter(Mandatory = $true)][object] $Value
)
if (-not (Test-Path -LiteralPath $Path)) {
New-Item -Path $Path -Force | Out-Null
}
New-ItemProperty -LiteralPath $Path -Name $Name -PropertyType $PropertyType -Value $Value -Force | Out-Null
}
function Remove-RegistryValue {
param(
[Parameter(Mandatory = $true)][string] $Path,
[Parameter(Mandatory = $true)][string] $Name
)
if (Test-Path -LiteralPath $Path) {
Remove-ItemProperty -LiteralPath $Path -Name $Name -Force -ErrorAction SilentlyContinue
}
}
function Clear-RegistryKeyValues {
param(
[Parameter(Mandatory = $true)][string] $Path
)
if (-not (Test-Path -LiteralPath $Path)) {
return
}
foreach ($propertyName in (Get-Item -LiteralPath $Path).Property) {
Remove-ItemProperty -LiteralPath $Path -Name $propertyName -Force -ErrorAction SilentlyContinue
}
}
# Policy: Excluded Domains
# Name: DNSOverHTTPS_ExcludedDomains
# Scope: Machine
# State: Enabled
# Source: firefox.admx
Clear-RegistryKeyValues -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Policies\Mozilla\Firefox\DNSOverHTTPS\ExcludedDomains'
- The OMA-URI is an inferred ADMX-backed Policy CSP candidate derived from the source ADMX file name and policy name.
- Some Microsoft policies use built-in Policy CSP pages whose area names don't match the ADMX file name, so verify the candidate against Microsoft Learn before deployment.
- The generated payload is incomplete because one or more ADMX element values were not supplied: List
ADMX profile candidate (OMA-URI)
./Device/Vendor/MSFT/Policy/Config/ADMX_firefox/DNSOverHTTPS_ExcludedDomainsIntune remediation scripts
Detection
$ErrorActionPreference = 'Stop'
$reasons = [System.Collections.Generic.List[string]]::new()
function Test-RegistryValueExists {
param(
[Parameter(Mandatory = $true)][string] $Path,
[Parameter(Mandatory = $true)][string] $Name
)
if (-not (Test-Path -LiteralPath $Path)) {
return $false
}
return $null -ne (Get-ItemProperty -LiteralPath $Path -Name $Name -ErrorAction SilentlyContinue)
}
function Test-RegistryValueEquals {
param(
[Parameter(Mandatory = $true)][string] $Path,
[Parameter(Mandatory = $true)][string] $Name,
[Parameter(Mandatory = $true)][string] $Kind,
[Parameter(Mandatory = $true)][object] $Expected
)
if (-not (Test-Path -LiteralPath $Path)) {
return $false
}
$valueObject = Get-ItemProperty -LiteralPath $Path -Name $Name -ErrorAction SilentlyContinue
if ($null -eq $valueObject) {
return $false
}
$actual = $valueObject.$Name
switch ($Kind) {
'String' { return [string]$actual -ceq [string]$Expected }
'ExpandString' { return [string]$actual -ceq [string]$Expected }
'DWord' { return [uint32]$actual -eq [uint32]$Expected }
'QWord' { return [uint64]$actual -eq [uint64]$Expected }
'MultiString' {
$actualArray = @($actual)
$expectedArray = @($Expected)
if ($actualArray.Count -ne $expectedArray.Count) { return $false }
for ($index = 0; $index -lt $actualArray.Count; $index++) {
if ([string]$actualArray[$index] -cne [string]$expectedArray[$index]) { return $false }
}
return $true
}
'Binary' {
$actualArray = [byte[]]$actual
$expectedArray = [byte[]]$Expected
if ($actualArray.Length -ne $expectedArray.Length) { return $false }
for ($index = 0; $index -lt $actualArray.Length; $index++) {
if ($actualArray[$index] -ne $expectedArray[$index]) { return $false }
}
return $true
}
default { return [string]$actual -ceq [string]$Expected }
}
}
# Policy: Excluded Domains
# Name: DNSOverHTTPS_ExcludedDomains
# Scope: Machine
# State: Enabled
# Source: firefox.admx
$keyPath = 'Registry::HKEY_LOCAL_MACHINE\Software\Policies\Mozilla\Firefox\DNSOverHTTPS\ExcludedDomains'
if (Test-Path -LiteralPath $keyPath) {
$propertyNames = (Get-Item -LiteralPath $keyPath).Property
if ($propertyNames.Count -gt 0) {
$reasons.Add('Key should be empty: HKEY_LOCAL_MACHINE\Software\Policies\Mozilla\Firefox\DNSOverHTTPS\ExcludedDomains') | Out-Null
}
}
if ($reasons.Count -eq 0) {
Write-Output 'Compliant'
exit 0
}
$reasons | ForEach-Object { Write-Output $_ }
exit 1
Remediation
$ErrorActionPreference = 'Stop'
function Set-RegistryValue {
param(
[Parameter(Mandatory = $true)][string] $Path,
[Parameter(Mandatory = $true)][string] $Name,
[Parameter(Mandatory = $true)][string] $PropertyType,
[Parameter(Mandatory = $true)][object] $Value
)
if (-not (Test-Path -LiteralPath $Path)) {
New-Item -Path $Path -Force | Out-Null
}
New-ItemProperty -LiteralPath $Path -Name $Name -PropertyType $PropertyType -Value $Value -Force | Out-Null
}
function Remove-RegistryValue {
param(
[Parameter(Mandatory = $true)][string] $Path,
[Parameter(Mandatory = $true)][string] $Name
)
if (Test-Path -LiteralPath $Path) {
Remove-ItemProperty -LiteralPath $Path -Name $Name -Force -ErrorAction SilentlyContinue
}
}
function Clear-RegistryKeyValues {
param(
[Parameter(Mandatory = $true)][string] $Path
)
if (-not (Test-Path -LiteralPath $Path)) {
return
}
foreach ($propertyName in (Get-Item -LiteralPath $Path).Property) {
Remove-ItemProperty -LiteralPath $Path -Name $propertyName -Force -ErrorAction SilentlyContinue
}
}
# Policy: Excluded Domains
# Name: DNSOverHTTPS_ExcludedDomains
# Scope: Machine
# State: Enabled
# Source: firefox.admx
Clear-RegistryKeyValues -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Policies\Mozilla\Firefox\DNSOverHTTPS\ExcludedDomains'
History 85 retained releases
- 6.75 Feb 2025
- Translations changed; choose a language above to compare its wording.
- 6.69 Jan 2025
- Translations changed; choose a language above to compare its wording.
- 6.526 Nov 2024
- Translations changed; choose a language above to compare its wording.
- 6.011 Jul 2024
- Translations changed; choose a language above to compare its wording.
- 4.126 Jun 2023
- Translations changed; choose a language above to compare its wording.
- 3.79 Mar 2022
- Translations changed; choose a language above to compare its wording.
- 2.1019 Apr 2021
- Translations changed; choose a language above to compare its wording.
- 2.823 Feb 2021
- Translations changed; choose a language above to compare its wording.
- 2.011 Jul 2020
- Translations changed; choose a language above to compare its wording.
- 1.174 Jun 2020
- Translations changed; choose a language above to compare its wording.
- 1.165 May 2020
- Translations changed; choose a language above to compare its wording.
- 1.158 Apr 2020
- Added in this release.
60 later releases left it unchanged.
Template
- Internal name
DNSOverHTTPS_ExcludedDomains- Namespace
Mozilla.Policies.Firefox- Template file
firefox.admx- Release
- Mozilla Firefox 7.9.1 · file set
a735e5407dca0f19…
Definition, editor controls and support
Definition
<policy class="Both" displayName="$(string.DNSOverHTTPS_ExcludedDomains)" explainText="$(string.DNSOverHTTPS_ExcludedDomains_Explain)" key="Software\Policies\Mozilla\Firefox\DNSOverHTTPS" name="DNSOverHTTPS_ExcludedDomains" presentation="$(presentation.List)" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
<parentCategory ref="Mozilla.Policies.Firefox:DNSOverHTTPS" />
<supportedOn ref="Mozilla.Policies.Firefox:SUPPORTED_FF75" />
<elements>
<list id="List" key="Software\Policies\Mozilla\Firefox\DNSOverHTTPS\ExcludedDomains" valuePrefix="" />
</elements>
</policy>Editor controls
<presentation id="List" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
<listBox refId="List" />
</presentation>Supported platforms and category
Mozilla.Policies.Firefox:category:DNSOverHTTPS
<category displayName="$(string.DNSOverHTTPS_group)" name="DNSOverHTTPS" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
<parentCategory ref="Mozilla.Policies.Firefox:firefox" />
</category>
Mozilla.Policies.Firefox:category:firefox
<category displayName="$(string.firefox)" name="firefox" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
<parentCategory ref="Mozilla.Policies:Cat_Mozilla" />
</category>
Mozilla.Policies.Firefox:definition:SUPPORTED_FF75
<definition displayName="$(string.SUPPORTED_FF75)" name="SUPPORTED_FF75" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions" />
Mozilla.Policies:category:Cat_Mozilla
<category displayName="$(string.mozilla)" name="Cat_Mozilla" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions" />
Mozilla.Policies.Firefox:category:DNSOverHTTPS
<category displayName="$(string.DNSOverHTTPS_group)" name="DNSOverHTTPS" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
<parentCategory ref="Mozilla.Policies.Firefox:firefox" />
</category>
<strings><string id="Mozilla.Policies.Firefox:DNSOverHTTPS_group">DNS Over HTTPS</string></strings>
Mozilla.Policies.Firefox:category:firefox
<category displayName="$(string.firefox)" name="firefox" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
<parentCategory ref="Mozilla.Policies:Cat_Mozilla" />
</category>
<strings><string id="Mozilla.Policies.Firefox:firefox">Firefox</string></strings>
Mozilla.Policies.Firefox:definition:SUPPORTED_FF75
<definition displayName="$(string.SUPPORTED_FF75)" name="SUPPORTED_FF75" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions" />
<strings><string id="Mozilla.Policies.Firefox:SUPPORTED_FF75">Firefox 75 or later, Firefox 68.7 ESR or later</string></strings>
Mozilla.Policies:category:Cat_Mozilla
<category displayName="$(string.mozilla)" name="Cat_Mozilla" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions" />
<strings><string id="Mozilla.Policies:mozilla">Mozilla</string></strings>