Comment configurer un proxy sous Windows

Aperçu

Cet article explique comment configurer un proxy dans Windows, en distinguant le niveau utilisateur (WinINET) et le niveau système (WinHTTP).
Exemple : ProxyServer = http=<<PROXY_ADDRESS>>;https=<<PROXY_ADDRESS>>. Les valeurs dépendantes de l’environnement sont représentées par <<variables>>.


Variables utilisées

Variable Exemple Description
<<PROXY_ADDRESS>> proxy.example.com:8080 Nom d’hôte et port du serveur proxy
<<PROXY_BYPASS>> intranet.example.com;192.168.*;<local> Domaines et sous-réseaux exclus du proxy
<<ADVPROXY_SETTINGS_PATH>> C:\proxy-settings.json Chemin du fichier JSON pour la configuration advproxy

Étape 1 : Comprendre les types de configuration proxy

Type Portée Utilisation
Niveau utilisateur (WinINET) Session utilisateur Navigateurs et applications utilisant les paramètres IE/Edge
Niveau système (WinHTTP) Services système / OS Communications système : Windows Update, BITS, Defender

BITS (Background Intelligent Transfer Service) transfère efficacement les données en arrière-plan pour Windows Update et Microsoft Defender.
Il fonctionne sous le compte système local (LocalSystem), donc les paramètres WinINET ne s’appliquent pas.


Étape 2 : Configurer le proxy utilisateur avec PowerShell

$proxy = "<<PROXY_ADDRESS>>"
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" `
  -Name ProxyEnable -Value 1
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" `
  -Name ProxyServer -Value "http=$proxy;https=$proxy"
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" `
  -Name ProxyOverride -Value "<<PROXY_BYPASS>>"

Vérification :

Get-ItemProperty "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" | Select ProxyEnable, ProxyServer, ProxyOverride

Étape 3 : Configurer le proxy système (WinHTTP / BITS)

① Méthode classique (Windows Server 2019 et versions antérieures)

netsh winhttp set proxy <<PROXY_ADDRESS>> "<<PROXY_BYPASS>>"
netsh winhttp show proxy

② Nouvelle méthode (Windows Server 2022 et versions ultérieures – recommandée)

Créer un fichier JSON :

@'
{
  "ProxyIsEnabled": true,
  "Proxy": "http=<<PROXY_ADDRESS>>;https=<<PROXY_ADDRESS>>",
  "ProxyBypass": "<<PROXY_BYPASS>>",
  "AutoConfigIsEnabled": false,
  "AutoDetect": false
}
'@ | Out-File "<<ADVPROXY_SETTINGS_PATH>>" -Encoding ascii

Appliquer la configuration :

netsh winhttp set advproxy setting-scope=machine settings-file="<<ADVPROXY_SETTINGS_PATH>>"

Alternative sans fichier JSON :

netsh winhttp set advproxy setting-scope=machine settings='{\"ProxyIsEnabled\":true,\"Proxy\":\"http=<<PROXY_ADDRESS>>;https=<<PROXY_ADDRESS>>\",\"ProxyBypass\":\"<<PROXY_BYPASS>>\",\"AutoConfigIsEnabled\":false,\"AutoDetect\":false}'

Cette méthode est pratique pour les tests ou les environnements temporaires.


Étape 4 : Appliquer les paramètres proxy BITS au compte LocalSystem

bitsadmin /util /setieproxy localsystem MANUAL_PROXY <<PROXY_ADDRESS>> "<<PROXY_BYPASS>>"
bitsadmin /util /getieproxy localsystem

Étape 5 : Vérification et dépannage

netsh winhttp show proxy
Get-ItemProperty "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" | Select ProxyEnable, ProxyServer, ProxyOverride

Si Windows Update échoue via le proxy, désactivez AutoDetect et utilisez la commande advproxy sous Server Core.


Réinitialiser les paramètres proxy

Réinitialisation du proxy utilisateur (WinINET)

Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" -Name ProxyEnable -Value 0
Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" -Name ProxyServer -ErrorAction SilentlyContinue
Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" -Name ProxyOverride -ErrorAction SilentlyContinue

Réinitialisation du proxy système (WinHTTP / advproxy)

netsh winhttp reset proxy

Pour Server 2022 et plus :

netsh winhttp set advproxy setting-scope=machine settings='{\"Proxy\":\"\",\"ProxyBypass\":\"\",\"AutoconfigUrl\":\"\",\"AutoDetect\":false}'

Résumé

Windows gère deux types principaux de configuration proxy :

  • WinINET : pour les navigateurs et applications utilisateur (lié à IE/Edge).
  • WinHTTP / advproxy : pour les communications système (Windows Update, BITS, Defender).

Sous Windows Server 2022+, la méthode advproxy est recommandée.
bitsadmin permet d’assurer la bonne application du proxy pour les comptes système.

Bonnes pratiques :

  1. Identifier la couche concernée (utilisateur ou système)
  2. Configurer WinINET ou WinHTTP selon le cas
  3. Utiliser advproxy sur Server Core
  4. Réinitialiser avec reset proxy ou reset advproxy si nécessaire

Ainsi, les services tels que Windows Update et Defender fonctionneront correctement même derrière un proxy.