Windows Components › Internet Explorer
Turn on the auto-complete feature for user names and passwords on forms
Supported on At least Internet Explorer 5.0
What it does
This AutoComplete feature can remember and suggest User names and passwords on Forms. If you enable this setting, the user cannot change "User name and passwords on forms" or "prompt me to save passwords". The Auto Complete feature for User names and passwords on Forms will be turned on. You have to decide whether to select "prompt me to save passwords". If you disable this setting the user cannot change "User name and passwords on forms" or "prompt me to save passwords". The Auto Complete feature for User names and passwords on Forms is turned off. The user also cannot opt to be prompted to save passwords. If you do not configure this setting, the user has the freedom of turning on Auto complete for User name and passwords on forms and the option of prompting to save passwords. To display this option, the users open the Internet Options dialog box, click the Contents Tab and click the Settings button.
What it writes
- Hive
- HKEY_CURRENT_USER
- Registry key
Software\Policies\Microsoft\Internet Explorer\Main- Value name
FormSuggest Passwords- When enabled
- "yes"; Software\Policies\Microsoft\Internet Explorer\Control Panel\FormSuggest Passwords = DWORD 1
- When disabled
- "no"; Software\Policies\Microsoft\Internet Explorer\Control Panel\FormSuggest Passwords = DWORD 1
In Intune
Native Intune setting: Yes — Policy CSP
./User/Vendor/MSFT/Policy/Config/InternetExplorer/AllowAutoCompleteInternetExplorer 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.
Security baselines
Microsoft's Windows 11 v26H2 Security Baseline v2 sets this to Disabled, in its GPO “MSFT Internet Explorer 11 - User”.
- FormSuggest Passwords
- Sets FormSuggest Passwords to 1 (REG_DWORD).
- Prompt me to save passwords
- Set to “no”.
- Policy value FormSuggest Passwords
- Sets FormSuggest Passwords to “no” (REG_SZ).
Read from the registry.pol files in the baselines' GPO backups, downloaded from Microsoft's Security Compliance Toolkit. All baselines
Options
| Option | Type | Registry value | Allowed values |
|---|---|---|---|
| Prompt me to save passwords | Checkbox | FormSuggest PW Ask |
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\Internet Explorer\Control Panel]
"FormSuggest Passwords"=dword:00000001
[HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Main]
"FormSuggest Passwords"="yes"
"FormSuggest PW Ask"="yes"
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: Turn on the auto-complete feature for user names and passwords on forms
# Name: RestrictFormSuggestPW
# Scope: User
# State: Enabled
# Source: inetres.admx
Set-RegistryValue -Path 'Registry::HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Main' -Name 'FormSuggest Passwords' -PropertyType 'String' -Value 'yes'
Set-RegistryValue -Path 'Registry::HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Control Panel' -Name 'FormSuggest Passwords' -PropertyType 'DWord' -Value 1
Set-RegistryValue -Path 'Registry::HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Main' -Name 'FormSuggest PW Ask' -PropertyType 'String' -Value 'yes'
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.
- The generated payload is incomplete because one or more ADMX element values were not supplied: ChkBox_PasswordAsk
ADMX profile candidate (OMA-URI)
./User/Vendor/MSFT/Policy/Config/ADMX_inetres/RestrictFormSuggestPWIntune 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: Turn on the auto-complete feature for user names and passwords on forms
# Name: RestrictFormSuggestPW
# Scope: User
# State: Enabled
# Source: inetres.admx
$isMatch = Test-RegistryValueEquals -Path 'Registry::HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Main' -Name 'FormSuggest Passwords' -Kind 'String' -Expected 'yes'
if (-not $isMatch) {
$reasons.Add('Value mismatch: HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Main\FormSuggest Passwords') | Out-Null
}
$isMatch = Test-RegistryValueEquals -Path 'Registry::HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Control Panel' -Name 'FormSuggest Passwords' -Kind 'DWord' -Expected 1
if (-not $isMatch) {
$reasons.Add('Value mismatch: HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Control Panel\FormSuggest Passwords') | Out-Null
}
$isMatch = Test-RegistryValueEquals -Path 'Registry::HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Main' -Name 'FormSuggest PW Ask' -Kind 'String' -Expected 'yes'
if (-not $isMatch) {
$reasons.Add('Value mismatch: HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Main\FormSuggest PW Ask') | 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: Turn on the auto-complete feature for user names and passwords on forms
# Name: RestrictFormSuggestPW
# Scope: User
# State: Enabled
# Source: inetres.admx
Set-RegistryValue -Path 'Registry::HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Main' -Name 'FormSuggest Passwords' -PropertyType 'String' -Value 'yes'
Set-RegistryValue -Path 'Registry::HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Control Panel' -Name 'FormSuggest Passwords' -PropertyType 'DWord' -Value 1
Set-RegistryValue -Path 'Registry::HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Main' -Name 'FormSuggest PW Ask' -PropertyType 'String' -Value 'yes'
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
RestrictFormSuggestPW- 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="User" displayName="$(string.RestrictFormSuggestPW)" explainText="$(string.IE_ExplainRestrictFormSuggestPW)" key="Software\Policies\Microsoft\Internet Explorer\Main" name="RestrictFormSuggestPW" presentation="$(presentation.RestrictFormSuggestPW)" valueName="FormSuggest Passwords" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
<parentCategory ref="Microsoft.Policies.InternetExplorer:InternetExplorer" />
<supportedOn ref="Microsoft.Policies.InternetExplorer:SUPPORTED_IE5" />
<enabledValue>
<string>yes</string>
</enabledValue>
<disabledValue>
<string>no</string>
</disabledValue>
<enabledList>
<item key="Software\Policies\Microsoft\Internet Explorer\Control Panel" valueName="FormSuggest Passwords">
<value>
<decimal value="1" />
</value>
</item>
</enabledList>
<disabledList>
<item key="Software\Policies\Microsoft\Internet Explorer\Control Panel" valueName="FormSuggest Passwords">
<value>
<decimal value="1" />
</value>
</item>
</disabledList>
<elements>
<boolean id="ChkBox_PasswordAsk" valueName="FormSuggest PW Ask">
<trueValue>
<string>yes</string>
</trueValue>
<falseValue>
<string>no</string>
</falseValue>
</boolean>
</elements>
</policy>Editor controls
<presentation id="RestrictFormSuggestPW" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
<checkBox refId="ChkBox_PasswordAsk">Prompt me to save passwords</checkBox>
</presentation>Supported platforms and 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: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>