Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What key in windows registry disables IE connection parameter "Automatically Detect Settings"?

Tags:

I'm trying to set all the connection settings in IE.

I've found how to modify most of them, in the path :

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings

But I can't find the parameter that sets or unsets "Automatically Detect Settings".

Any help ?

like image 332
leo Avatar asked Nov 04 '09 14:11

leo


People also ask

Where are IE proxy settings in registry?

IE stores its configuration settings in the HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings registry subkey. In this subkey, the ProxyEnable entry controls enabling and disabling IE's proxy settings. Setting ProxyEnable to 0 disables them; setting ProxyEnable to 1 enables them.


2 Answers

I found the solution : it's the 9th byte of this key :

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections] "DefaultConnectionSettings"=hex:3c,00,00,00,1f,00,00,00,05,00,00,00,00,00,00, 00,00,00,00,00,00,00,00,00,01,00,00,00,1f,00,00,00,68,74,74,70,3a,2f,2f,31, 34,34,2e,31,33,31,2e,32,32,32,2e,31,36,37,2f,77,70,61,64,2e,64,61,74,90,0e, 1e,66,d3,88,c5,01,01,00,00,00,8d,a8,4e,9e,00,00,00,00,00,00,00,00

It's a bitfield:

  • 0x1: (Always 1)
  • 0x2: Proxy enabled
  • 0x4: "Use automatic configuration script" checked
  • 0x8: "Automatically detect settings" checked

Mask 0x8 to turn it off, i.e., subtract 8 if it's higher than 8.

Thanks to Jamie on google groups.

Update

Based on the VBScript by WhoIsRich combined with details in this answer, here's a PowerShell script to amend these & related settings:

function Set-ProxySettings {     [CmdletBinding()]     param ( #could improve with parameter sets          [Parameter(Mandatory = $false)]         [bool]$AutomaticDetect = $true         ,         [Parameter(Mandatory = $false)]         [bool]$UseProxyForLAN = $false         ,         [Parameter(Mandatory = $false)]         [AllowNull()][AllowEmptyString()]         [string]$ProxyAddress = $null         ,         [Parameter(Mandatory = $false)]         [int]$ProxyPort = 8080 #closest we have to a default port for proxies         ,         [AllowNull()][AllowEmptyString()]         [bool]$UseAutomaticConfigurationScript = $false     )     begin {         [string]$ProxyRegRoot = 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings'         [string]$DefaultConnectionSettingsPath = (Join-Path $ProxyRegRoot 'Connections')         [byte]$MaskProxyEnabled = 2         [byte]$MaskUseAutomaticConfigurationScript = 4         [byte]$MaskAutomaticDetect = 8         [int]$ProxyConnectionSettingIndex = 8     }     process {     #this setting is affected by multiple options, so fetch once here      [byte[]]$DefaultConnectionSettings = Get-ItemProperty -Path $DefaultConnectionSettingsPath -Name 'DefaultConnectionSettings' | Select-Object -ExpandProperty 'DefaultConnectionSettings'      #region auto detect     if($AutomaticDetect) {          Set-ItemProperty -Path $ProxyRegRoot -Name AutoDetect -Value 1         $DefaultConnectionSettings[$ProxyConnectionSettingIndex] = $DefaultConnectionSettings[$ProxyConnectionSettingIndex] -bor $MaskAutomaticDetect     } else {         Set-ItemProperty -Path $ProxyRegRoot -Name AutoDetect -Value 0         $DefaultConnectionSettings[$ProxyConnectionSettingIndex] = $DefaultConnectionSettings[$ProxyConnectionSettingIndex] -band (-bnot $MaskAutomaticDetect)     }     #endregion      #region defined proxy     if($UseProxyForLAN) {         if(-not ([string]::IsNullOrWhiteSpace($ProxyAddress))) {             Set-ItemProperty -Path $ProxyRegRoot -Name ProxyServer -Value ("{0}:{1}" -f $ProxyAddress,$ProxyPort)         }         Set-ItemProperty -Path $ProxyRegRoot -Name ProxyEnable -Value 1         $DefaultConnectionSettings[$ProxyConnectionSettingIndex] = $DefaultConnectionSettings[$ProxyConnectionSettingIndex] -bor $MaskProxyEnabled     } else {         Set-ItemProperty -Path $ProxyRegRoot -Name ProxyEnable -Value 0                 $DefaultConnectionSettings[$ProxyConnectionSettingIndex] = $DefaultConnectionSettings[$ProxyConnectionSettingIndex] -band (-bnot $MaskProxyEnabled)     }     #endregion      #region config script     if($UseAutomaticConfigurationScript){         $DefaultConnectionSettings[$ProxyConnectionSettingIndex] = $DefaultConnectionSettings[$ProxyConnectionSettingIndex] -bor $MaskUseAutomaticConfigurationScript     }else{         $DefaultConnectionSettings[$ProxyConnectionSettingIndex] = $DefaultConnectionSettings[$ProxyConnectionSettingIndex] -band (-bnot $MaskUseAutomaticConfigurationScript)      }     #endregion      #persist the updates made above     Set-ItemProperty -Path $DefaultConnectionSettingsPath -Name 'DefaultConnectionSettings' -Value $DefaultConnectionSettings     } } 
like image 91
leo Avatar answered Sep 23 '22 13:09

leo


Another way to control this setting is by using an undocumented registry key AutoDetect=0 mentioned on this blog post:

Registry Key : HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\

DWORD AutoDetect = 0 or 1

So the .reg file to turn it off would look like:

Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings] "AutoDetect"=dword:00000000 
like image 36
Frank Vandebergh Avatar answered Sep 25 '22 13:09

Frank Vandebergh