嗨,Scripting Guy!

嗨,Scripting Guy!

歡迎使用 TechNet 專欄,Microsoft Scripting Guy 會在此為您解答有關系統管理指令碼的常見問題。您有關於系統管理指令碼方面的問題嗎?請將電子郵件傳送到 scripter@microsoft.com。我們無法保證能夠逐一回答每個問題,不過我們會盡力而為。

今天的問題: 如何將網站加入 Internet Explorer 的受限制的網站區域中?


如何將網站加入 Internet Explorer 的受限制的網站區域中?

嗨,Scripting Guy! 我要如何將網站加入遠端電腦 Internet Explorer 的受限制的網站區域中?

-- NS

NS,您好。Internet Explorer 只要一遇到指令碼,就會產生雙重人格。如果您要程式設計應用程式本身,那就問對人了:Internet Explorer 的文件物件模型是對外開放的,它可以做各種有趣的事情,例如,為指令碼建立圖形化使用者介面 (如需相關範例,請參閱全新的 HTA Developers Center)。

不過,如果是管理 Internet Explorer 就不一樣了,尤其如果您希望同時管理企業間的多部電腦時更是如此。雖然有好幾個「群組原則」選項可用來管理 Internet Explorer,卻沒有幾個指令碼選項可以管理 Internet Explorer;Internet Explorer 並沒有任何真正成熟的 WMI 提供者,也不會顯示任何 COM 物件讓您設定系統管理設定值。乍看之下,撰寫指令碼的人好像運氣不太好。

不過,第一印象也不一定準。其實大部份 Internet Explorer 的組態設定都是儲存在登錄中,而且以指令碼可以存取的方式儲存。我們是既無法使用 WMI 提供者,又無法使用 Internet Explorer COM 物件將網站加入受限制的網站區域,不過沒關係:只要用 WMI 指令碼修改登入,就可以加入網站了。

您可以在登錄的下列部份,找到 Internet Explorer 的區域資訊:

  • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\
  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\

正如所預期的,您在 HKEY_CURRENT_USER 找到的資訊,只適用於目前使用者 (而且也要根據使用者而定),而在 HKEY_LOCAL_MACHINE 找到的資訊,則適用於登入該電腦的每一個人。您可以把受限制的網站加入其中一處;唯一要考慮的是,是要把限制套用到使用該電腦的每一個人呢,還是只套用到目前使用者。

那麼如何把網站加入安全性區域呢?請參閱下列步驟:

建立登錄機碼。比方說,如果要針對目前使用者,將 fabrikam.com 網站加入安全性區域,必須在 HKEY_CURRENT_USER\ Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\ 下面,建立一個 fabrikam.com 登錄機碼。

建立 DWORD 登錄值。登錄值的名稱,代表從該網站管理的通訊協定。因為是受限制的網站區域,所以可能得把登錄值命名為 *;全面封鎖所有來自該網站的通訊協定。另外,舉個例說,您也可以把該值命名為 http,只封鎖 HTTP 通訊協定。

為登錄值指派適當的 Internet Explorer 安全性區域。每一個 Internet Explorer 安全性區域都各以一個數字表示。受限制的網站區域是 4;下面將列出包含其他區域在內的代表數字:


區域
內部網路 1
信任的網站 2
網際網路 3
限制的網站 4


在登錄中,受限制的網站看起來如下:

 

登錄


啊?很無聊嗎?我們才剛要示範指令碼,將 fabrikam.com 加入受限制的網站區域呢:

Const HKEY_CURRENT_USER = &H80000001
strComputer = "."
Set objReg = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")
strKeyPath = "Software\Microsoft\Windows\CurrentVersion\Internet Settings\" _
    & "ZoneMap\Domains\fabrikam.com"
objReg.CreateKey HKEY_CURRENT_USER,strKeyPath
strValueName = "*"
dwValue = 4
objReg.SetDWORDValue HKEY_CURRENT_USER,strKeyPath,strValueName,dwValue

指令碼從建立一個叫做 HKEY_CURRENT_USER 的常數開始,並且將值設為 &H80000001;目的是要指出我們要修改登錄的哪一部分。接著就連接到 WMI 服務和標準登錄提供者 (root\default:StdRegProv)。

再來就指定新登錄機碼的登錄路徑;請注意附加在結尾的 fabrikam.com;

strKeyPath = "Software\Microsoft\Windows\CurrentVersion\Internet Settings\" _
    & "ZoneMap\Domains\fabrikam.com"

指定路徑之後,就呼叫 CreateKey 方法,建立新的登錄機碼。

有了 fabrikam.com 登錄機碼之後,還需要加入登錄值。在這個例子中,我們建立的登錄值名叫 *,其值為 4;它會把 fabrikam.com 加入受限制的網站區域中,並且封鎖所有的 Internet 通訊協定。接著再呼叫 SetDWORDValue 方法,建立新的登錄值。如果您啟動 Internet Explorer 並檢查受限制的網站區域,應該會在限制的網站清單中看到 fabrikam.com:

限制的網站


請注意,雖然我們的範例指令碼是針對本機電腦而設計,還是可以經過簡單的修改,將它用在遠端電腦上;只要把該遠端電腦的名稱或 IP 位址指派給 strComputer 變數就可以了。


如需詳細資訊

查看嗨,Scripting Guy!- 過往文件

 

回到頁首 回到頁首