proxy.pac
Sitter och väntar på en installation (av OpsMgr 2007… !) och passade på att reda ut lite om PAC-file under tiden… pratade med en kund om detta igår…
Om du tar javascript-filen som finns nedan och klipper in den i en fil som heter wpad.dat och lägger upp den på någon lämplig webserver.
Sen pekar du ut ett c-name (mot den servern, *doh*) som blir wpad.mindomän.se eller vart nu era klienter sitter (wpad.klient.domänen.net) så kommer automatiska inställningarna för proxy fungera finfint (Internet Explorer).
Ett alternativ är att klippa in den i en fil som heter proxy.pac och lägga upp den på en webbserver. Sen pekar man ut den flien som proxy-inställningsfil mha en gpo.
Det man måste göra på webbservern är att lägga till en mime-type så att .pac blir application/x-ns-proxy-autoconfig.
IIS’ens tjänstehanterare och väljer egenskaper för den aktuella webb-platsen.
- Välj filken http Headers
- Tryck på File Types
- Skriv in .PAC och application/x-ns-proxy-autoconfig
… ok, ok… ok ok ok … fix färdigt…
Fördelen med wpad-grejjen är att bärbara klienter inte får någon proxy när dom sitter hemma eller på något annat nät…
function FindProxyForURL(url, host) { // Sätter variabler var stdProxy = "PROXY 192.168.100.10:8080; DIRECT"; var noProxy = "DIRECT"; var clientIP = myIpAddress(); // Mot lokal maskinen if (dnsDomainIs(host, "localhost")) { return noProxy; } if (isInNet(host,"127.0.0.1","255.255.255.255")) { return noProxy; } if (isInNet(host,clientIP,"255.255.255.255")) { return noProxy; } // Servrar innanför egna domänen if (shExpMatch(host,"*.mindomän.se")) { return noProxy; } if (shExpMatch(host,"*.minandradomän.se")) { return noProxy; } // Lokala servrar if (isPlainHostName(host)) { return noProxy; } if (shExpMatch(url, "http://minserver*")) { return noProxy; } // Direkt till vissa nät if (isInNet(host,"123.1.1.0","255.255.255.0")) { return noProxy; } if (isInNet(host,"123.123.123.0","255.255.255.0")) { return noProxy; } // Skicka till windows update utan proxy if ((url.substring(0, 6) == "https:") && (!dnsDomainIs(host,"windowsupdate.microsoft.com"))) { return noProxy; } // Skicka alla andra till proxy return stdProxy; }
Jag har inte testat den här PAC-filen, men det är ett ganska bra-att-ha-exempel i alla fall.
Edit 2007-02-05: Rättat upp lite små-fel i koden, saknade lite parenteser.