What it does
Specifies whether the user may open pages in Incognito mode in Brave. If 'Enabled' is selected or the policy is left unset, pages may be opened in Incognito mode. If 'Disabled' is selected, pages may not be opened in Incognito mode. If 'Forced' is selected, pages may be opened ONLY in Incognito mode. Note that 'Forced' does not work for Android-on-Chrome The IncognitoModeUrlAllowlist policy takes precedence over this policy and can re-enable Incognito mode for specific URLs. When Incognito mode is disabled by this policy when an allowlist is provided, Incognito mode is available only for URLs matching the allowlist, while all other pages are blocked. Note: On iOS, if the policy is changed during a session, it will only take effect on relaunch.
What it writes
- Hive
- HKEY_LOCAL_MACHINE or HKEY_CURRENT_USER
- Registry key
Software\Policies\BraveSoftware\Brave
Options
| Option | Type | Registry value | Allowed values |
|---|---|---|---|
| Incognito mode availability | Drop-down list | IncognitoModeAvailability |
|
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\BraveSoftware\Brave]
"IncognitoModeAvailability"=dword:00000000
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: Incognito mode availability
# Name: IncognitoModeAvailability
# Scope: Machine
# State: Enabled
# Source: brave.admx
Set-RegistryValue -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Policies\BraveSoftware\Brave' -Name 'IncognitoModeAvailability' -PropertyType 'DWord' -Value 0
- 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: IncognitoModeAvailability
ADMX profile candidate (OMA-URI)
./Device/Vendor/MSFT/Policy/Config/ADMX_brave/IncognitoModeAvailabilityIntune 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: Incognito mode availability
# Name: IncognitoModeAvailability
# Scope: Machine
# State: Enabled
# Source: brave.admx
$isMatch = Test-RegistryValueEquals -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Policies\BraveSoftware\Brave' -Name 'IncognitoModeAvailability' -Kind 'DWord' -Expected 0
if (-not $isMatch) {
$reasons.Add('Value mismatch: HKEY_LOCAL_MACHINE\Software\Policies\BraveSoftware\Brave\IncognitoModeAvailability') | 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: Incognito mode availability
# Name: IncognitoModeAvailability
# Scope: Machine
# State: Enabled
# Source: brave.admx
Set-RegistryValue -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Policies\BraveSoftware\Brave' -Name 'IncognitoModeAvailability' -PropertyType 'DWord' -Value 0
History 44 retained releases
- 1.88.13419 Mar 2026
- Translations changed; choose a language above to compare its wording.
- 1.88.13214 Mar 2026
- Already present in the first release ChangeIntel keeps.
42 later releases left it unchanged.
Template
- Internal name
IncognitoModeAvailability- Namespace
BraveSoftware.Policies.Brave- Template file
brave.admx- Release
- Brave Browser 1.97.59 · file set
d6401efd8c1937d9…
Definition, editor controls and support
Definition
<policy class="Both" displayName="$(string.IncognitoModeAvailability)" explainText="$(string.IncognitoModeAvailability_Explain)" key="Software\Policies\BraveSoftware\Brave" name="IncognitoModeAvailability" presentation="$(presentation.IncognitoModeAvailability)" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
<parentCategory ref="BraveSoftware.Policies.Brave:brave" />
<supportedOn ref="BraveSoftware.Policies.Brave:SUPPORTED_WIN7" />
<elements>
<enum id="IncognitoModeAvailability" valueName="IncognitoModeAvailability">
<item displayName="$(string.IncognitoModeAvailability_Enabled)">
<value>
<decimal value="0" />
</value>
</item>
<item displayName="$(string.IncognitoModeAvailability_Disabled)">
<value>
<decimal value="1" />
</value>
</item>
<item displayName="$(string.IncognitoModeAvailability_Forced)">
<value>
<decimal value="2" />
</value>
</item>
</enum>
</elements>
</policy>Editor controls
<presentation id="IncognitoModeAvailability" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions"><dropdownList refId="IncognitoModeAvailability">Incognito mode availability</dropdownList></presentation>Supported platforms and category
BraveSoftware.Policies.Brave:category:Cat_Brave
<category displayName="$(string.Cat_Brave)" name="Cat_Brave" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions" />
BraveSoftware.Policies.Brave:category:brave
<category displayName="$(string.brave)" name="brave" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
<parentCategory ref="BraveSoftware.Policies.Brave:Cat_Brave" />
</category>
BraveSoftware.Policies.Brave:definition:SUPPORTED_WIN7
<definition displayName="$(string.SUPPORTED_WIN7)" name="SUPPORTED_WIN7" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions" />
BraveSoftware.Policies.Brave:category:Cat_Brave
<category displayName="$(string.Cat_Brave)" name="Cat_Brave" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions" />
<strings><string id="BraveSoftware.Policies.Brave:Cat_Brave">Brave Software</string></strings>
BraveSoftware.Policies.Brave:category:brave
<category displayName="$(string.brave)" name="brave" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
<parentCategory ref="BraveSoftware.Policies.Brave:Cat_Brave" />
</category>
<strings><string id="BraveSoftware.Policies.Brave:brave">Brave</string></strings>
BraveSoftware.Policies.Brave:definition:SUPPORTED_WIN7
<definition displayName="$(string.SUPPORTED_WIN7)" name="SUPPORTED_WIN7" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions" />
<strings><string id="BraveSoftware.Policies.Brave:SUPPORTED_WIN7">Microsoft Windows 7 or later</string></strings>