Problem
Server版本的Windows IE預設包含IE Security/Protected Mode的功能,瀏覽網頁時必須將目標URL設定為安全URL才能正常存取。這導致每次部屬測試環境時,都要花額外的時間去處理,因此我研究該如何透過script去將它給disable,以節省時間。
How to?
Windows2008我透過Process Monitor去找到在操作IE Disable Protected Mode時,所需要修改的Registry。但這方法並不適用於Windows2003,必須改透過SYSOCMGR.EXE將IE Security Component移除。在實做上,首先可以透過ver指令判斷作業系統去決定要執行的動作。
ver | findstr "5\." > nul if not errorlevel 1 goto DISABLE_IE_SECURITY_ON_WIN2003 ver | findstr "6\." > nul if not errorlevel 1 goto DISABLE_PROTECTED_MODE_ON_WIN2008 echo Don't support to disable the IE protected mode for the Windows. ver GOTO FINISH
Win2003的部分我產生一個Config暫存檔,去餵給SYSOCMGR.EXE。其中IEHardenUser與IEHardenAdmin為針對User與Admin的Component,設為Off就會移除,反之設為On就會安裝。完成後會再把暫存檔刪除。
:DISABLE_IE_SECURITY_ON_WIN2003 echo Disable the IE Security set TMPFILE="%BASE%IE-Security.tmp" echo [Components] > %TMPFILE% echo IEHardenUser=Off >> %TMPFILE% echo IEHardenAdmin=Off >> %TMPFILE% SYSOCMGR.EXE /i:%windir%\inf\sysoc.inf /u:%TMPFILE% DEL %TMPFILE% GOTO FINISH
Win2008部分就是將所有存取區域(Zones)中的Key=2500改3去Disable,改為0則為enable。接著會遇到的問題是每次開啟IE都會顯示討厭的Warning,你可以去新增Key=NoProtectedModeBanner為1到Internet Explorer\Main,它就會消失了。要讓它再次出現只要將值改為0或是刪除Key。
:DISABLE_PROTECTED_MODE_ON_WIN2008 echo Disable the IE Protected Mode reg add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0" /v 2500 /t REG_DWORD /d 3 /f reg add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1" /v 2500 /t REG_DWORD /d 3 /f reg add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v 2500 /t REG_DWORD /d 3 /f reg add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3" /v 2500 /t REG_DWORD /d 3 /f reg add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\4" /v 2500 /t REG_DWORD /d 3 /f reg add "HKCU\SOFTWARE\Microsoft\Internet Explorer\Main" /v NoProtectedModeBanner /t REG_DWORD /d 1 /f
Win2008預設值中,只有Zones 3與4為0,因此要還原只要去改這兩個key。
友藏內心獨白: 所有的事情都可以自動化,不是嗎?
Reference
補充
不檢查預設瀏覽器:
reg add "HKCU\SOFTWARE\Microsoft\Internet Explorer\Main" /v Check_Associations /t REG_SZ /d no /f
修改預設瀏覽器:
reg add "HKCU\Software\Clients\StartMenuInternet" /ve /t REG_SZ /d firefox.exe /f
由於Internet Zone沒有將所有存取權限打開,使用javascript可能還有問題,因此我將Local與Internet Zone存取能力改為與Trust Zone相同: 使用下面指令匯入registry,這registry是將Trust Zone匯出並修改而成。
reg import ieconfig.reg
留言
張貼留言