venerdì 22 febbraio 2013

Cambiare definizioni proxy automaticamente

Come tanti ho l’esigenza di usare il PC in più reti aziendali, ogni volta devo riconfigurare il Proxy.
Mi sono un po’ scocciato e ho fatto in modo che il mio PC con Win7 Professional a 64 bit in base al nome della rete configuri, all’avvio, il proxy. Il tutto lo ho fatto con un file batch MS-DOS e, naturalmente, conoscendo in precedenza il nome della rete e le impostazioni del proxy.

  1. Setto le variabili con cui lavorerò;
  2. Poi vado a controllare come è configurato attualmente il PC utilizzando il seguente comando: for /f "tokens=1-5 delims= " %%a in ('reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable') do set ProxyEnable=%%c ; Questo comando non fa altro che andare ad interrogare il file di registro , per scoprire se è presente il flag sul box “Utilizza un server Proxy per la connessione LAN”;
  3. Poi vado a controllare se il computer è connesso ad una LAN, nel caso in cui non lo fosse ciclo questo controllo ogni 10 secondi in “eterno”;
  4. Con il comando for /f "tokens=1 delims={, skip=1" %%a in ('%wmicmd%') do call :SETVAR %%a dove wmicmd corrisponde a wmic NICCONFIG WHERE IPEnabled=true get DNSDomain settato nelle prime righe come variabile, vado a scoprire il nome della LAN a cui sono connesso;
  5. Analizzando il nome del dominio , estratto nel passo 4, ed il flag sulla presenza del Proxy o meno , estratto nel passo 2, vado a crearmi un file con estensione reg , file di configurazione del registro, se necessario modificare tali impostazioni ed eseguo tale file;
  6. Il sistema operativo vi darà i soliti aller di UAC (User Account Control) e del fatto che state modificando le impostazioni del registro.

Di seguito l’elenco delle voci che più di comune si utilizzano modificando i settaggi del proxy:
  • ProxyEnable:
    • Il valore 00000000 Disattiva la configurazione del proxy
    • Il valore 00000001 Attiva la configurazione del proxy
  • ProxyOverride: contiene le stringhe per bypassare il proxy, se necessarie, sono accettati indiriziz IP e nomi simbolici, è accettato il carattere jolly * e le varie stringhe sono divise da ;
  • ProxyServer: Indica il nome del server seguito da due punti e la porta su cui è in ascolto (esempio mioproxy:8080)
Un esempio del mio file batch è disponibile qui per il download.