System-Wide Proxy Settings in Windows Regedit

Configuring a system-wide proxy via the Windows Registry (Regedit) allows administrators to route all network traffic on a machine through a designated proxy server, applying settings across all user accounts and system services. This article covers the exact registry paths and key values required to configure, enable, and enforce machine-wide proxy settings in Windows.

1. The Primary Registry Keys for Proxy Configuration

Windows handles proxy configurations at both the per-user and per-machine levels. For system-wide proxy settings, the relevant keys are located in HKEY_LOCAL_MACHINE.


2. Enforcing Machine-Wide Proxy Over Per-User Settings

By default, Windows applies proxy settings on a per-user basis (HKEY_CURRENT_USER). To force the entire operating system to use the settings defined in HKEY_LOCAL_MACHINE, you must modify the ProxySettingsPerUser policy:

  1. Navigate to:
    HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\CurrentVersion\Internet Settings
  2. Create or modify a DWORD (32-bit) Value named ProxySettingsPerUser.
  3. Set the value to 0.

Setting this value to 0 makes proxy settings apply to all users on the computer instead of individual user profiles.


3. Key Values for Configuring the Proxy

Within HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Internet Settings (or the equivalent Policies path), the following values define the proxy behavior:


4. Configuring WinHTTP Proxy for System Services

Background system services, such as Windows Update, use the WinHTTP stack rather than the standard Internet Explorer/WinINet stack.

Because WinHttpSettings is stored in binary format, it is standard practice to set it via the Command Prompt using the following command, which writes directly to the registry:

netsh winhttp set proxy 192.168.1.100:8080 "<local>;*.example.com"

To import the proxy already configured in the registry via WinINet to WinHTTP, run:

netsh winhttp import proxy source=ie