Microsoft Outlook 2016 › Account Settings › Exchange
Disable AutoDiscover
Supported on SUPPORTED_Windows7 (defined in the Windows templates)
What it does
This policy setting allows you to disable AutoDiscover. If you enable this policy setting, you can select one or more of the following options to disable in the AutoDiscover feature. "Exclude the last known good URL” – Outlook does not use the last known good Autodiscover URL. "Exclude the SCP object lookup" – Outlook does not perform Active Directory queries for Service Connection Point (SCP) objects with Autodiscover information. "Exclude the root domain query based on your primary SMTP address" - Outlook does not use the root domain of your primary SMTP address to locate the AutoDiscover service. For example, you select this optionOutlook does not use the following URL: https://<smtp-address-domain>/autodiscover/autodiscover.xml. "Exclude the query for the AutoDiscover domain" - Outlook does not use the Autodiscover domain to locate the Autodiscover service. For example, Outlook does not use the following URL: https://autodiscover.<smtp-address-domain>/autodiscover/autodiscover.xml "Exclude the HTTP redirect method" - Outlook does not use the HTTP redirect method in the event it is unable to reach the AutoDiscover service via either of the HTTPS URLs: https://<smtp-address-domain>/autodiscover/autodiscover.xml or https://autodiscover.<smtp-address-domain>/autodiscover/autodiscover.xml. "Exclude the SRV record query in DNS" - Outlook does not use an SRV record lookup in DNS to locate the AutoDiscover service.
What it writes
- Hive
- HKEY_CURRENT_USER
- Registry key
software\policies\microsoft\office\16.0\outlook\autodiscover
Why it needs changes for Intune
- Policy references a Windows supportedOn definition.
- ADMX-INTUNE-WINDOWS-SUPPORTEDON-REFERENCE
Options
| Option | Type | Registry value | Allowed values |
|---|---|---|---|
| Exclude the last known goode URL | Checkbox | excludelastknowngoodurl |
On (1) or off (0) |
| Exclude the SCP object lookup | Checkbox | excludescplookup |
On (1) or off (0) |
| Exclude the root domain query based on your primary SMTP address | Checkbox | excludehttpsrootdomain |
On (1) or off (0) |
| Exclude the query for the AutoDiscover domain | Checkbox | excludehttpsautodiscoverdomain |
On (1) or off (0) |
| Exclude the HTTP redirect method | Checkbox | excludehttpredirect |
On (1) or off (0) |
| Exclude the SRV record query in DNS | Checkbox | excludesrvrecord |
On (1) or off (0) |
| Exclude initial check to Office 365 Autodiscover URL | Checkbox | excludeexplicito365endpoint |
On (1) or off (0) |
| Disable the Autodiscover V2 service | Checkbox | disableautodiscoverv2service |
On (1) or off (0) |
Configure and deploy
Choose a state and the option values; the output below is generated from the template for exactly that.
Enabled · User · template defaults
Registry file (.reg)
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\software\policies\microsoft\office\16.0\outlook\autodiscover]
"disableautodiscoverv2service"=dword:00000001
"excludeexplicito365endpoint"=dword:00000001
"excludehttpredirect"=dword:00000001
"excludehttpsautodiscoverdomain"=dword:00000001
"excludehttpsrootdomain"=dword:00000001
"excludelastknowngoodurl"=dword:00000001
"excludescplookup"=dword:00000001
"excludesrvrecord"=dword:00000001
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 AutoDiscover
# Name: L_OutlookDisableAutoDiscover
# Scope: User
# State: Enabled
# Source: outlk16.admx
Set-RegistryValue -Path 'Registry::HKEY_CURRENT_USER\software\policies\microsoft\office\16.0\outlook\autodiscover' -Name 'excludelastknowngoodurl' -PropertyType 'DWord' -Value 1
Set-RegistryValue -Path 'Registry::HKEY_CURRENT_USER\software\policies\microsoft\office\16.0\outlook\autodiscover' -Name 'excludescplookup' -PropertyType 'DWord' -Value 1
Set-RegistryValue -Path 'Registry::HKEY_CURRENT_USER\software\policies\microsoft\office\16.0\outlook\autodiscover' -Name 'excludehttpsrootdomain' -PropertyType 'DWord' -Value 1
Set-RegistryValue -Path 'Registry::HKEY_CURRENT_USER\software\policies\microsoft\office\16.0\outlook\autodiscover' -Name 'excludehttpsautodiscoverdomain' -PropertyType 'DWord' -Value 1
Set-RegistryValue -Path 'Registry::HKEY_CURRENT_USER\software\policies\microsoft\office\16.0\outlook\autodiscover' -Name 'excludehttpredirect' -PropertyType 'DWord' -Value 1
Set-RegistryValue -Path 'Registry::HKEY_CURRENT_USER\software\policies\microsoft\office\16.0\outlook\autodiscover' -Name 'excludesrvrecord' -PropertyType 'DWord' -Value 1
Set-RegistryValue -Path 'Registry::HKEY_CURRENT_USER\software\policies\microsoft\office\16.0\outlook\autodiscover' -Name 'excludeexplicito365endpoint' -PropertyType 'DWord' -Value 1
Set-RegistryValue -Path 'Registry::HKEY_CURRENT_USER\software\policies\microsoft\office\16.0\outlook\autodiscover' -Name 'disableautodiscoverv2service' -PropertyType 'DWord' -Value 1
- 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: L_OutlookDisableAutoDiscoverLkgUrl, L_OutlookDisableAutoDiscoverScpLookup, L_OutlookDisableAutoDiscoverRootDomain, L_OutlookDisableAutoDiscoverAutoDiscoverSubDomain, L_OutlookDisableAutoDiscoverHttpRedirect, L_OutlookDisableAutoDiscoverSrvRecord, L_OutlookDisableAutoDiscoverExplicitO365Endpoint, L_OutlookDisableAutodiscoverV2Service
ADMX profile candidate (OMA-URI)
./User/Vendor/MSFT/Policy/Config/ADMX_outlk16/L_OutlookDisableAutoDiscoverIntune 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 AutoDiscover
# Name: L_OutlookDisableAutoDiscover
# Scope: User
# State: Enabled
# Source: outlk16.admx
$isMatch = Test-RegistryValueEquals -Path 'Registry::HKEY_CURRENT_USER\software\policies\microsoft\office\16.0\outlook\autodiscover' -Name 'excludelastknowngoodurl' -Kind 'DWord' -Expected 1
if (-not $isMatch) {
$reasons.Add('Value mismatch: HKEY_CURRENT_USER\software\policies\microsoft\office\16.0\outlook\autodiscover\excludelastknowngoodurl') | Out-Null
}
$isMatch = Test-RegistryValueEquals -Path 'Registry::HKEY_CURRENT_USER\software\policies\microsoft\office\16.0\outlook\autodiscover' -Name 'excludescplookup' -Kind 'DWord' -Expected 1
if (-not $isMatch) {
$reasons.Add('Value mismatch: HKEY_CURRENT_USER\software\policies\microsoft\office\16.0\outlook\autodiscover\excludescplookup') | Out-Null
}
$isMatch = Test-RegistryValueEquals -Path 'Registry::HKEY_CURRENT_USER\software\policies\microsoft\office\16.0\outlook\autodiscover' -Name 'excludehttpsrootdomain' -Kind 'DWord' -Expected 1
if (-not $isMatch) {
$reasons.Add('Value mismatch: HKEY_CURRENT_USER\software\policies\microsoft\office\16.0\outlook\autodiscover\excludehttpsrootdomain') | Out-Null
}
$isMatch = Test-RegistryValueEquals -Path 'Registry::HKEY_CURRENT_USER\software\policies\microsoft\office\16.0\outlook\autodiscover' -Name 'excludehttpsautodiscoverdomain' -Kind 'DWord' -Expected 1
if (-not $isMatch) {
$reasons.Add('Value mismatch: HKEY_CURRENT_USER\software\policies\microsoft\office\16.0\outlook\autodiscover\excludehttpsautodiscoverdomain') | Out-Null
}
$isMatch = Test-RegistryValueEquals -Path 'Registry::HKEY_CURRENT_USER\software\policies\microsoft\office\16.0\outlook\autodiscover' -Name 'excludehttpredirect' -Kind 'DWord' -Expected 1
if (-not $isMatch) {
$reasons.Add('Value mismatch: HKEY_CURRENT_USER\software\policies\microsoft\office\16.0\outlook\autodiscover\excludehttpredirect') | Out-Null
}
$isMatch = Test-RegistryValueEquals -Path 'Registry::HKEY_CURRENT_USER\software\policies\microsoft\office\16.0\outlook\autodiscover' -Name 'excludesrvrecord' -Kind 'DWord' -Expected 1
if (-not $isMatch) {
$reasons.Add('Value mismatch: HKEY_CURRENT_USER\software\policies\microsoft\office\16.0\outlook\autodiscover\excludesrvrecord') | Out-Null
}
$isMatch = Test-RegistryValueEquals -Path 'Registry::HKEY_CURRENT_USER\software\policies\microsoft\office\16.0\outlook\autodiscover' -Name 'excludeexplicito365endpoint' -Kind 'DWord' -Expected 1
if (-not $isMatch) {
$reasons.Add('Value mismatch: HKEY_CURRENT_USER\software\policies\microsoft\office\16.0\outlook\autodiscover\excludeexplicito365endpoint') | Out-Null
}
$isMatch = Test-RegistryValueEquals -Path 'Registry::HKEY_CURRENT_USER\software\policies\microsoft\office\16.0\outlook\autodiscover' -Name 'disableautodiscoverv2service' -Kind 'DWord' -Expected 1
if (-not $isMatch) {
$reasons.Add('Value mismatch: HKEY_CURRENT_USER\software\policies\microsoft\office\16.0\outlook\autodiscover\disableautodiscoverv2service') | 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 AutoDiscover
# Name: L_OutlookDisableAutoDiscover
# Scope: User
# State: Enabled
# Source: outlk16.admx
Set-RegistryValue -Path 'Registry::HKEY_CURRENT_USER\software\policies\microsoft\office\16.0\outlook\autodiscover' -Name 'excludelastknowngoodurl' -PropertyType 'DWord' -Value 1
Set-RegistryValue -Path 'Registry::HKEY_CURRENT_USER\software\policies\microsoft\office\16.0\outlook\autodiscover' -Name 'excludescplookup' -PropertyType 'DWord' -Value 1
Set-RegistryValue -Path 'Registry::HKEY_CURRENT_USER\software\policies\microsoft\office\16.0\outlook\autodiscover' -Name 'excludehttpsrootdomain' -PropertyType 'DWord' -Value 1
Set-RegistryValue -Path 'Registry::HKEY_CURRENT_USER\software\policies\microsoft\office\16.0\outlook\autodiscover' -Name 'excludehttpsautodiscoverdomain' -PropertyType 'DWord' -Value 1
Set-RegistryValue -Path 'Registry::HKEY_CURRENT_USER\software\policies\microsoft\office\16.0\outlook\autodiscover' -Name 'excludehttpredirect' -PropertyType 'DWord' -Value 1
Set-RegistryValue -Path 'Registry::HKEY_CURRENT_USER\software\policies\microsoft\office\16.0\outlook\autodiscover' -Name 'excludesrvrecord' -PropertyType 'DWord' -Value 1
Set-RegistryValue -Path 'Registry::HKEY_CURRENT_USER\software\policies\microsoft\office\16.0\outlook\autodiscover' -Name 'excludeexplicito365endpoint' -PropertyType 'DWord' -Value 1
Set-RegistryValue -Path 'Registry::HKEY_CURRENT_USER\software\policies\microsoft\office\16.0\outlook\autodiscover' -Name 'disableautodiscoverv2service' -PropertyType 'DWord' -Value 1
History 1 retained release
- 5568.100010 Aug 2026
- Already present in the first release ChangeIntel keeps.
Template
- Internal name
L_OutlookDisableAutoDiscover- Namespace
outlk16.Office.Microsoft.Policies.Windows- Template file
outlk16.admx- Release
- Microsoft 365 Apps 5568.1000 · file set
8be05d876aae137d…
Definition, editor controls and support
Definition
<policy class="User" displayName="$(string.L_OutlookDisableAutoDiscover)" explainText="$(string.L_OutlookDisableAutoDiscoverExplain)" key="software\policies\microsoft\office\16.0\outlook\autodiscover" name="L_OutlookDisableAutoDiscover" presentation="$(presentation.L_OutlookDisableAutoDiscover)" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
<parentCategory ref="outlk16.Office.Microsoft.Policies.Windows:L_Exchangesettings" />
<supportedOn ref="Microsoft.Policies.Windows:SUPPORTED_Windows7" />
<elements>
<boolean id="L_OutlookDisableAutoDiscoverLkgUrl" valueName="excludelastknowngoodurl">
<trueValue>
<decimal value="1" />
</trueValue>
<falseValue>
<decimal value="0" />
</falseValue>
</boolean>
<boolean id="L_OutlookDisableAutoDiscoverScpLookup" valueName="excludescplookup">
<trueValue>
<decimal value="1" />
</trueValue>
<falseValue>
<decimal value="0" />
</falseValue>
</boolean>
<boolean id="L_OutlookDisableAutoDiscoverRootDomain" valueName="excludehttpsrootdomain">
<trueValue>
<decimal value="1" />
</trueValue>
<falseValue>
<decimal value="0" />
</falseValue>
</boolean>
<boolean id="L_OutlookDisableAutoDiscoverAutoDiscoverSubDomain" valueName="excludehttpsautodiscoverdomain">
<trueValue>
<decimal value="1" />
</trueValue>
<falseValue>
<decimal value="0" />
</falseValue>
</boolean>
<boolean id="L_OutlookDisableAutoDiscoverHttpRedirect" valueName="excludehttpredirect">
<trueValue>
<decimal value="1" />
</trueValue>
<falseValue>
<decimal value="0" />
</falseValue>
</boolean>
<boolean id="L_OutlookDisableAutoDiscoverSrvRecord" valueName="excludesrvrecord">
<trueValue>
<decimal value="1" />
</trueValue>
<falseValue>
<decimal value="0" />
</falseValue>
</boolean>
<boolean id="L_OutlookDisableAutoDiscoverExplicitO365Endpoint" valueName="excludeexplicito365endpoint">
<trueValue>
<decimal value="1" />
</trueValue>
<falseValue>
<decimal value="0" />
</falseValue>
</boolean>
<boolean id="L_OutlookDisableAutodiscoverV2Service" valueName="disableautodiscoverv2service">
<trueValue>
<decimal value="1" />
</trueValue>
<falseValue>
<decimal value="0" />
</falseValue>
</boolean>
</elements>
</policy>Editor controls
<presentation id="L_OutlookDisableAutoDiscover" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
<checkBox refId="L_OutlookDisableAutoDiscoverLkgUrl">Exclude the last known goode URL</checkBox>
<checkBox refId="L_OutlookDisableAutoDiscoverScpLookup">Exclude the SCP object lookup</checkBox>
<checkBox refId="L_OutlookDisableAutoDiscoverRootDomain">Exclude the root domain query based on your primary SMTP address</checkBox>
<checkBox refId="L_OutlookDisableAutoDiscoverAutoDiscoverSubDomain">Exclude the query for the AutoDiscover domain</checkBox>
<checkBox refId="L_OutlookDisableAutoDiscoverHttpRedirect">Exclude the HTTP redirect method</checkBox>
<checkBox refId="L_OutlookDisableAutoDiscoverSrvRecord">Exclude the SRV record query in DNS</checkBox>
<checkBox refId="L_OutlookDisableAutoDiscoverExplicitO365Endpoint">Exclude initial check to Office 365 Autodiscover URL</checkBox>
<checkBox refId="L_OutlookDisableAutodiscoverV2Service">Disable the Autodiscover V2 service</checkBox>
</presentation>Supported platforms and category
outlk16.Office.Microsoft.Policies.Windows:category:L_Exchangesettings
<category displayName="$(string.L_Exchangesettings)" name="L_Exchangesettings" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
<parentCategory ref="outlk16.Office.Microsoft.Policies.Windows:L_ToolsAccounts" />
</category>
outlk16.Office.Microsoft.Policies.Windows:category:L_MicrosoftOfficeOutlook
<category displayName="$(string.L_MicrosoftOfficeOutlook)" name="L_MicrosoftOfficeOutlook" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions" />
outlk16.Office.Microsoft.Policies.Windows:category:L_ToolsAccounts
<category displayName="$(string.L_ToolsAccounts)" name="L_ToolsAccounts" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
<parentCategory ref="outlk16.Office.Microsoft.Policies.Windows:L_MicrosoftOfficeOutlook" />
</category>
outlk16.Office.Microsoft.Policies.Windows:unresolved:Microsoft.Policies.Windows:SUPPORTED_Windows7
<unresolved reference="Microsoft.Policies.Windows:SUPPORTED_Windows7" />
outlk16.Office.Microsoft.Policies.Windows:category:L_Exchangesettings
<category displayName="$(string.L_Exchangesettings)" name="L_Exchangesettings" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
<parentCategory ref="outlk16.Office.Microsoft.Policies.Windows:L_ToolsAccounts" />
</category>
<strings><string id="outlk16.Office.Microsoft.Policies.Windows:L_Exchangesettings">Exchange</string></strings>
outlk16.Office.Microsoft.Policies.Windows:category:L_MicrosoftOfficeOutlook
<category displayName="$(string.L_MicrosoftOfficeOutlook)" name="L_MicrosoftOfficeOutlook" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions" />
<strings><string id="outlk16.Office.Microsoft.Policies.Windows:L_MicrosoftOfficeOutlook">Microsoft Outlook 2016</string></strings>
outlk16.Office.Microsoft.Policies.Windows:category:L_ToolsAccounts
<category displayName="$(string.L_ToolsAccounts)" name="L_ToolsAccounts" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
<parentCategory ref="outlk16.Office.Microsoft.Policies.Windows:L_MicrosoftOfficeOutlook" />
</category>
<strings><string id="outlk16.Office.Microsoft.Policies.Windows:L_ToolsAccounts">Account Settings</string></strings>