This guide explains how to configure proxy settings and bypass exclusions on **Windows**, with attention to **IP-based proxy definitions** and **WebSocket app compatibility**.

Common apps that rely on WebSockets:
- **Slack**
- **Figma**
- **Lucidchart**

These can fail when routed through proxies like **Squid**, which do not support`wss://`connections.

---

## What this script does

- Sets a **system-wide proxy IP address** via PowerShell
- Applies exclusions for **user apps (WinINET)** and **system services (WinHTTP)**
- Prevents proxy routing for **WebSocket-based** apps and Microsoft services
- Supports deployment via **Intune**, **GPO**, or manual script execution

---

## Manual configuration steps

1. Launch **Control Panel** → **Internet Options**.
2. Navigate to the **Connections** tab → **LAN Settings**.
3. Enable **Use a proxy server**.
4. Set:
   - Address = `192.168.1.10`
   - Port = `8080`
5. Click **Advanced**, then add the domains below to the **Exceptions** list.
6. Apply and save.

---

## Scripted method (PowerShell)

```powershell
# Define proxy IP and port
$proxyIP = "http://192.168.1.10:8080"

# Define proxy bypass list
$bypassList = "localhost;127.0.0.1;*.microsoftonline.com;*.core.windows.net;*.slack.com;*.figma.com;*.lucidchart.com;*.lucid.app;*.github.com;copilot-proxy.githubusercontent.com"

# Apply proxy for system services
netsh winhttp set proxy $proxyIP ";$bypassList"

# Apply proxy for user apps
$regPath = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings"
Set-ItemProperty -Path $regPath -Name ProxyEnable -Value 1
Set-ItemProperty -Path $regPath -Name ProxyServer -Value $proxyIP
Set-ItemProperty -Path $regPath -Name ProxyOverride -Value $bypassList
```