先說這個問題的背景:公司的代理配置指令碼限制過嚴,開發時自己配的host經常被識別為非法地址,這很討厭,於是我複製了公司的配置指令碼儲存在本地,然後做了些修改,讓自己的host都是合法的,但是更討厭的時,公司的安全系統會定時把代理配置指令碼還原為官方的,於是我希望自己也有個程式能監控代理配置指令碼的設定,如果不是我自己的,馬上改正,要做到這點,首先得能夠用指令碼化的方式修改設定。
網上很多的使用指令碼修改代理的文章,都是直接改Proxy 伺服器設定的,查了好久沒找到我想要的,不過這些文章還是很有啟發,就是IE的這些設定應該都是存在註冊表裡的。於是我根據當前設定的自動設定指令碼的某個關鍵詞在註冊表裡面搜,發現原來是在這裡設定的:[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\NlaSvc\Parameters\Internet\ManualProxies]
這下就好辦了,寫註冊表檔案或是用命令列的方式都可以修改這個設定:
1、註冊表方式,編輯一個文字檔如下:
REGEDIT4
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\NlaSvc\Parameters\Internet\ManualProxies]
@="filepath"
@表示這個鍵的預設值,filepath可以是“file://c:/some.pac”的形式,表示本地檔案,也可以是url,說明使用一個網路上公用的代理檔案,然後另存新檔XXX.reg即可,再雙擊儲存的檔案,相應的設定就被修改了;
2、命令列方式,使用red add命令:
reg add HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\NlaSvc\Parameters\Internet\ManualProxies /ve /d "val"
這個命令表示在註冊表中添加一個索引值,如果已存在則會覆蓋其值,/ve表示預設值,/d "val"表示要使用val來設定這個鍵,詳細的reg命令可以在命令提示字元中敲reg /?查看。使用命令列方式時務必使用管理員權限運行,不然無法修改。
現在問題就解決了,只需要再寫個指令碼周期性的調用命令列命令就可以了。