Windows Proxy Server systemweit einstellen

Die im Internet Explorer hinterlegten Proxyeinstellen werden vom IE ausgewertet, sowie von allen Programmen die auf die Internet Explorer Einstellungen zurückgreifen können.

Damit Proxyeinstellungen vom ganzen System genutzt werden können, sprich auch von Anwendungen wie z.B. Powershell, WinRM oder Windows Update, dann müssen diese Einstellungen erst einmal gesetzt werden.  Der IE bleibt nach dem Einstellen des systemweiten Proxys weiterhin außen vor. Dazu nutzen wir das Kommandozeilentool “netsh”.

netsh winhttp show proxy
netsh winhttp set proxy proxy.nds-edv.de:3128

Wenn die Einstellungen die im IE hinterlegt sind, auf dem systemweiten Proxy wirken sollen, so kann man diese direkt von WinINET nach WinHTTP überführen bzw. importieren.

netsh winhttp import proxy source =ie

Proxy Umgehungsliste (Bypass-List) setzen

netsh winhttp set proxy “proxy.nds-edv.de:3128” bypass-list= “*.test.local”

Um die Einstellungen rund um den “System” Proxy rückgängig zu machen, wird dieser Befehl ausgeführt.

netsh winhttp reset proxy

Im Allgemeinen gibt es 3 Möglichkeiten einen Proxy-Server zu konfigurieren/nutzen.

  1. Zum einen in Anwendungen die ihre eigenen Proxykonfigurationseinstellungen mitbringen und somit auf keine API des Systems zurückgreifen können oder wollen.
  2. Anwendungshersteller die das Rad nicht neu erfinden wollen greifen auf die WinINET API (Kernstück vom Internet Explorer) zurück. Somit partizipieren Anwendungen auch direkt von der Cookiebehandlung, den SSL/TLS Einstellungen und dem konfigurierten Proxy im IE.
  3. WinHTTP ist eher für eine nicht-interaktive Verwendung gedacht, wie z.B. für Windows-Dienste oder Aufgaben die im Hintergrund kommunizieren müssen, also für Prozesse die keinen Benutzereingriff erfordern (Windows Update, Powershell, WinRM, Zertifikatsprüfung).

WinHTTP ist im Vergleich zu WinINET performanter und ist von .NET abhängig. Beides kann über die Automatische Erkennung, manuelle Konfiguration oder Proxy-Auto-Skript konfiguriert werden.

Zusammengefasst bedeutet das, dass WinHTTP nicht die Einstellungen von WinINET, die im Internet Explorer konfiguriert werden, nutzt. Dazu müsste erst wie oben beschrieben dieser Befehl “netsh winhttp import proxy source =ie” ausgeführt werden.

WinINET wird im Internet Explorer konfiguriert und ist nur für das jeweilige Benutzerkonto gültig. Standardmäßig ist die automatische Suche voreingestellt und nutzt somit das Web Proxy Autodiscovery Protocol (WPAD). Der Proxy wird somit entweder durch eine DHCP-Option oder durch eine DNS Abfrage WPAD-A konfiguriert. Möchte man das jeder Benutzer die gleichen Settings benutzt, kann das über eine Gruppenrichtlinie gesteuert werden.

Computer Configuration\Administrative Templates\Windows Components\Internet Explorer
Make proxy settings per-machine (rather than per user)

Es ist auch möglich die WinHTTP Settings über eine Gruppenrichtlinie zu verbreiten. Dazu importiert man einfach den Binärwert des Eintrags WinHttpSettings über den Registry Wizard.

WinHTTP Settings per GPO verteilen