Windows Components › Internet Explorer › Delete Browsing History
Disable "Configuring History"
Supported on At least Internet Explorer 5.0
What it does
This setting specifies the number of days that Internet Explorer tracks views of pages in the History List. To access the Temporary Internet Files and History Settings dialog box, from the Menu bar, on the Tools menu, click Internet Options, click the General tab, and then click Settings under Browsing history. If you enable this policy setting, a user cannot set the number of days that Internet Explorer tracks views of the pages in the History List. You must specify the number of days that Internet Explorer tracks views of pages in the History List. Users can not delete browsing history. If you disable or do not configure this policy setting, a user can set the number of days that Internet Explorer tracks views of pages in the History list. Users can delete browsing history.
What it writes
- Hive
- HKEY_LOCAL_MACHINE or HKEY_CURRENT_USER
- Registry key
Software\Policies\Microsoft\Internet Explorer\Control Panel- Value name
History- When enabled
- DWORD 1
- When disabled
- value removed
In Intune
Native Intune setting: Yes — Policy CSP
./Device/Vendor/MSFT/Policy/Config/InternetExplorer/DisableConfiguringHistoryInternetExplorer on Microsoft LearnADMX-backed: Windows ships this template, so it is set with the template's own values, without an import.Windows builds listed: 10.0.16299../User/Vendor/MSFT/Policy/Config/InternetExplorer/DisableConfiguringHistoryInternetExplorer on Microsoft LearnADMX-backed: Windows ships this template, so it is set with the template's own values, without an import.Windows builds listed: 10.0.16299.
From Microsoft's Policy CSP DDF files (DDF v2 Files, February 2026), read 18 Oct 2026.
Options
| Option | Type | Registry value | Allowed values |
|---|---|---|---|
| Days to keep pages in HistoryRequiredDefault: 20 | Number | Software\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Url HistoryDaysToKeep |
0 to 999 |
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\Microsoft\Internet Explorer\Control Panel]
"History"=dword:00000001
[HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Url History]
"DaysToKeep"=dword:00000014
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: Disable "Configuring History"
# Name: RestrictHistory
# Scope: Machine
# State: Enabled
# Source: inetres.admx
Set-RegistryValue -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Internet Explorer\Control Panel' -Name 'History' -PropertyType 'DWord' -Value 1
Set-RegistryValue -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Url History' -Name 'DaysToKeep' -PropertyType 'DWord' -Value 20
These deployment candidates come from the ADMX template; they are separate from the native CSP mapping above.
- 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.
ADMX profile candidate (OMA-URI)
./Device/Vendor/MSFT/Policy/Config/ADMX_inetres/RestrictHistoryADMX SyncML candidate
<SyncML xmlns="SYNCML:SYNCML1.2">
<SyncBody>
<Replace>
<CmdID>1</CmdID>
<Item>
<Meta>
<Format>chr</Format>
<Type>text/plain</Type>
</Meta>
<Target>
<LocURI>./Device/Vendor/MSFT/Policy/Config/ADMX_inetres/RestrictHistory</LocURI>
</Target>
<Data><enabled/>
<data id="DaysToKeep_Prompt" value="20"/></Data>
</Item>
</Replace>
<Final/>
</SyncBody>
</SyncML>Intune 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: Disable "Configuring History"
# Name: RestrictHistory
# Scope: Machine
# State: Enabled
# Source: inetres.admx
$isMatch = Test-RegistryValueEquals -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Internet Explorer\Control Panel' -Name 'History' -Kind 'DWord' -Expected 1
if (-not $isMatch) {
$reasons.Add('Value mismatch: HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Internet Explorer\Control Panel\History') | Out-Null
}
$isMatch = Test-RegistryValueEquals -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Url History' -Name 'DaysToKeep' -Kind 'DWord' -Expected 20
if (-not $isMatch) {
$reasons.Add('Value mismatch: HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Url History\DaysToKeep') | 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: Disable "Configuring History"
# Name: RestrictHistory
# Scope: Machine
# State: Enabled
# Source: inetres.admx
Set-RegistryValue -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Internet Explorer\Control Panel' -Name 'History' -PropertyType 'DWord' -Value 1
Set-RegistryValue -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Url History' -Name 'DaysToKeep' -PropertyType 'DWord' -Value 20
History 3 retained releases
- 22H2 · 1.015 Jul 2024
- Already present in the first release ChangeIntel keeps.
2 later releases left it unchanged.
Template
- Internal name
RestrictHistory- Namespace
Microsoft.Policies.InternetExplorer- Template file
inetres.admx- Release
- Windows 11 23H2 · 1.0 · file set
d784d0ea5f14a680…
Definition, editor controls and support
Definition
<policy class="Both" displayName="$(string.RestrictHistory)" explainText="$(string.IE_ExplainRestrictHistory)" key="Software\Policies\Microsoft\Internet Explorer\Control Panel" name="RestrictHistory" presentation="$(presentation.RestrictHistory_1)" valueName="History" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
<parentCategory ref="Microsoft.Policies.InternetExplorer:DeleteBrowsingHistory" />
<supportedOn ref="Microsoft.Policies.InternetExplorer:SUPPORTED_IE5" />
<elements>
<decimal id="DaysToKeep_Prompt" key="Software\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Url History" maxValue="999" required="true" valueName="DaysToKeep" />
</elements>
</policy>Editor controls
<presentation id="RestrictHistory_1" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
<decimalTextBox defaultValue="20" refId="DaysToKeep_Prompt">Days to keep pages in History</decimalTextBox>
</presentation>Supported platforms and category
Microsoft.Policies.InternetExplorer:category:DeleteBrowsingHistory
<category displayName="$(string.DeleteBrowsingHistory)" name="DeleteBrowsingHistory" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
<parentCategory ref="Microsoft.Policies.InternetExplorer:InternetExplorer" />
</category>
Microsoft.Policies.InternetExplorer:category:InternetExplorer
<category displayName="$(string.InternetExplorer)" explainText="$(string.IE_ExplainCat)" name="InternetExplorer" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
<parentCategory ref="Microsoft.Policies.Windows:WindowsComponents" />
</category>
Microsoft.Policies.InternetExplorer:definition:SUPPORTED_IE5
<definition displayName="$(string.SUPPORTED_IE5)" name="SUPPORTED_IE5" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
<or>
<range minVersionIndex="5" ref="Microsoft.Policies.Products:InternetExplorer" />
</or>
</definition>
Microsoft.Policies.Products:product:InternetExplorer
sha256:f287ee590cbba46b7a95511866303967b9370c7c7d81185659d675ca19b05d72
Microsoft.Policies.Windows:category:WindowsComponents
<category displayName="$(string.WindowsComponents)" explainText="$(string.WindowsComponents_Help)" name="WindowsComponents" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions" />
Microsoft.Policies.InternetExplorer:category:DeleteBrowsingHistory
<category displayName="$(string.DeleteBrowsingHistory)" name="DeleteBrowsingHistory" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
<parentCategory ref="Microsoft.Policies.InternetExplorer:InternetExplorer" />
</category>
<strings><string id="Microsoft.Policies.InternetExplorer:DeleteBrowsingHistory">Delete Browsing History</string></strings>
Microsoft.Policies.InternetExplorer:category:InternetExplorer
<category displayName="$(string.InternetExplorer)" explainText="$(string.IE_ExplainCat)" name="InternetExplorer" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
<parentCategory ref="Microsoft.Policies.Windows:WindowsComponents" />
</category>
<strings><string id="Microsoft.Policies.InternetExplorer:IE_ExplainCat">Contains settings to configure Internet Explorer</string><string id="Microsoft.Policies.InternetExplorer:InternetExplorer">Internet Explorer</string></strings>
Microsoft.Policies.InternetExplorer:definition:SUPPORTED_IE5
<definition displayName="$(string.SUPPORTED_IE5)" name="SUPPORTED_IE5" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
<or>
<range minVersionIndex="5" ref="Microsoft.Policies.Products:InternetExplorer" />
</or>
</definition>
<strings><string id="Microsoft.Policies.InternetExplorer:SUPPORTED_IE5">At least Internet Explorer 5.0</string></strings>
Microsoft.Policies.Products:product:InternetExplorer
<product displayName="$(string.InternetExplorer)" name="InternetExplorer" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
<majorVersion displayName="$(string.InternetExplorer30)" name="InternetExplorer30" versionIndex="3" />
<majorVersion displayName="$(string.InternetExplorer40)" name="InternetExplorer40" versionIndex="4" />
<majorVersion displayName="$(string.InternetExplorer50)" name="InternetExplorer50" versionIndex="5" />
<majorVersion displayName="$(string.InternetExplorer60)" name="InternetExplorer60" versionIndex="6" />
<majorVersion displayName="$(string.InternetExplorer70)" name="InternetExplorer70" versionIndex="7" />
<majorVersion displayName="$(string.InternetExplorer80)" name="InternetExplorer80" versionIndex="8" />
<majorVersion displayName="$(string.InternetExplorer90)" name="InternetExplorer90" versionIndex="9" />
<majorVersion displayName="$(string.InternetExplorer100)" name="InternetExplorer100" versionIndex="10" />
<majorVersion displayName="$(string.InternetExplorer110)" name="InternetExplorer110" versionIndex="11" />
</product>
<strings><string id="Microsoft.Policies.Products:InternetExplorer">Internet Explorer</string><string id="Microsoft.Policies.Products:InternetExplorer100">Internet Explorer 10</string><string id="Microsoft.Policies.Products:InternetExplorer110">Internet Explorer 11</string><string id="Microsoft.Policies.Products:InternetExplorer30">Internet Explorer 3</string><string id="Microsoft.Policies.Products:InternetExplorer40">Internet Explorer 4</string><string id="Microsoft.Policies.Products:InternetExplorer50">Internet Explorer 5</string><string id="Microsoft.Policies.Products:InternetExplorer60">Internet Explorer 6</string><string id="Microsoft.Policies.Products:InternetExplorer70">Internet Explorer 7</string><string id="Microsoft.Policies.Products:InternetExplorer80">Internet Explorer 8</string><string id="Microsoft.Policies.Products:InternetExplorer90">Internet Explorer 9</string></strings>
Microsoft.Policies.Windows:category:WindowsComponents
<category displayName="$(string.WindowsComponents)" explainText="$(string.WindowsComponents_Help)" name="WindowsComponents" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions" />
<strings><string id="Microsoft.Policies.Windows:WindowsComponents">Windows Components</string><string id="Microsoft.Policies.Windows:WindowsComponents_Help">Contains settings for operating system components.</string></strings>