Windows 10 – Where is Windows Getting Its Proxy Settings From?

PROXYwindows 10

I've been configuring the proxy settings on a Win10 image that users will launch instances of. I initially configured the settings in the Internet Options tool and then used netsh winhttp import proxy source=ie to pull them into that system.

I needed to amend the bypass list. I tried to do this by adding the entry in Internet Options, but it didn't persist. Each time I closed the tool and reopened it, the entry was gone. I ran netsh winhttp reset proxy in case that configuration was overwriting the other.

Why I'm really confused, though, is that I am using the local group policy option Make proxy settings per-machine (rather than per-user). When it is enabled, the proxy settings are configured using the previous settings including the bypass list. I've tried to modify the list again, but again, the entry doesn't persist. When I disable the per-machine policy the proxy settings disappear from Internet Options. Enable it again and they reappear.

I've gone through the registry and removed every entry for the proxy server. I'm certain all entries are gone based on the searches I've done for "proxy", the IP address of the proxy, the port number of the proxy, "bypass", etc.

So I'm befuddled. Where is the proxy configuration coming from when I enable Make proxy settings per-machine (rather than per-user)?

Best Answer

I was clued into the solution to this when an unrelated post mentioned the DefaultConnectionSettings registry value. I looked into it and sure enough, there it was in the HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\InternetSettings\Connection key.

I deleted it under both HKLM and HKCU, System and SysWOW64, and probably a few other places it popped up including ControlSet01.

Once I was sure the registry was devoid of any possible values that could affect the proxy configuration, I then set the local GPO to make the proxy configuration per-machine rather than per-user. Then I deleted everything again.

Only after I had the per-machine policy enabled and the registry again free of the value, did I add the configuration to the Proxy Settings interface. The configuration was written to the registry as the DefaultConnectionSettings value which persisted across reboots.

I confirmed it was correct by disabling the per-machine policy and verifying that the proxy configuration was removed for the user. Then I re-enabled the policy and verified that the configuration was again in place.