文章編號: 240797 - 上次校閱: 2007年8月24日 - 版次: 9.2

如何阻止 ActiveX 控制項在 Internet Explorer 中執行

重要 本文包含如何修改登錄的相關資訊。修改登錄之前,請務必將它備份起來,並瞭解如何在發生問題時還原登錄。如需有關如何備份、還原和修改登錄的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
256986? (http://support.microsoft.com/kb/256986/ ) Microsoft Windows 登錄說明
全部展開 | 全部摺疊

結論

本文將告訴您,如何阻止 ActiveX 控制項在 Microsoft Internet Explorer 和 Windows Internet Explorer 中執行。您可以針對 ActiveX 控制項的「類別識別項」(CLSID) 修改「相容性旗標」DWORD 值的資料數值,以達到此目的。

注意 在 Microsoft Windows XP 和 Windows Server 2003 電腦中,系統管理員可以使用「軟體限制原則」,在 Active Directory 網域環境的電腦上,防止 ActiveX 控制項在任何程式中執行。如需有關軟體限制原則的詳細資訊,請造訪下列 Microsoft 網站:
http://technet.microsoft.com/en-us/library/bb457006.aspx (http://technet.microsoft.com/en-us/library/bb457006.aspx)

其他相關資訊

警告 如果您使用「登錄編輯程式」或其他方法不當地修改登錄,可能會發生嚴重問題。您可能需要重新安裝作業系統,才能解決這些問題。Microsoft 不保證可以解決這些問題。請自行承擔修改登錄的一切風險。

警告 Microsoft 不建議復原刪除 (對刪除動作進行復原) ActiveX 控制項。如果您執行這項操作,可能會產生安全性弱點。刪除位元通常是因為某些重大原因而設定,因此,在您復原刪除 ActiveX 控制項時,請務必特別謹慎小心。此外,由於下列程序極具技術性,除非您對此程序感到非常放心,否則請勿繼續進行,再者,您最好在開始之前,先仔細地閱讀整個程序。

ActiveX 控制項的 CLSID 即為該控制項的 GUID。您可以設定刪除位元,讓 Internet Explorer 在使用預設設定時絕對無法呼叫 ActiveX 控制項,藉此防止 ActiveX 控制項在 Internet Explorer 中執行。

刪除位元是登錄中,ActiveX 控制項的「相容性旗標」DWORD 值的特定值。這與在 ActiveX 控制項中撤銷「可處理指令碼」選項不同。撤銷「可處理指令碼」選項時,Internet Explorer 還是會呼叫控制項,然後顯示警告訊息,提示您 ActiveX 控制項可能不安全。根據您所做的決定,可能會執行控制項。然而,為 ActiveX 控制項設定刪除位元之後,Internet Explorer 完全不會呼叫該控制項,除非 Internet Explorer 中已啟用 [起始不標示為安全的 ActiveX 控制項] 選項。如果要設定刪除位元,請依照下列步驟執行:
  1. 判斷您想要停用的 ActiveX 控制項的 CLSID。如果您不確定控制項的 CLSID,請與製造商連絡。如果已安裝控制項,並且您知道控制項的易記名稱,就能夠判斷控制項的 CLSID 為何。如果要執行這項操作,請在 HKEY_CLASSES_ROOT\CLSID 中,檢查每個 CLSID 機碼中 ProgID 機碼的預設值字串值。除了想要停用的控制項以外,您可能需要盡量移除多個 ActiveX 控制項,才能更輕鬆地識別出適當的 CLSID。 如需有關如何移除 ActiveX 控制項的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
    154850? (http://support.microsoft.com/kb/154850/ ) 如何移除 Windows 中的 ActiveX 控制項
  2. 使用「登錄編輯程式」,檢視下列登錄機碼中 ActiveX 物件 CLSID 的「相容性旗標」DWORD 值的資料數值
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\CLSID of the ActiveX control
    其中 CLSID of the ActiveX Control 是適當的 ActiveX 控制項的類別識別項。

    注意事項
    • 一般而言,您會需要手動建立此登錄機碼。
    • 如果要判斷所要停用之 ActiveX 控制項的對應 CLSID,您必須先移除目前已安裝的所有 ActiveX 控制項,再安裝想要停用的控制項,然後在控制項的 CLSID 中加入刪除位元。
  3. 將「相容性旗標」DWORD 值的數值變更為 0x00000400。
如果已為 ActiveX 控制項設定刪除位元,並且發行具有不同 CLSID 的新版 ActiveX 控制項,您可以讓使用舊 CLSID 的網站繼續正常作用。您可以在登錄中與「相容性旗標」值相同層級之處加入新值,以達到此目的。這個值應該是名為 AlternateCLSID 的 REG_SZ 字串。AlternateCLSID 值出現時會加上括弧。例如,看起來會像這樣:
{ABCDEF12-ABCD-ABCD-ABCD-ABCDEF123456}
Internet Explorer 會解譯這個值,並建立一個在 AlternateCLSID 值 (而非收到刪除位元的值) 中參照的 ActiveX 控制項執行個體。

注意 如果要讓 AlternateCLSID 值生效,必須在初始 CLSID 上設定刪除位元。

ActiveX 控制項開發人員可以使用具有「刪除位元」的 TreatAs 或 AlternateCLSID 登錄值,讓 Internet Explorer 查看是否已經提供可用的更新 ActiveX 控制項,而非已停用的 ActiveX 控制項。如需有關如何使用 TreatAs 值的詳細資訊,請造訪下列 Microsoft 網站:
http://msdn2.microsoft.com/zh-tw/library/ms679737(en-us).aspx (http://msdn2.microsoft.com/zh-tw/library/ms679737(en-us).aspx)
如果要設定 AlternateCLSID 值,請依照下列步驟執行:
  1. 使用「登錄編輯程式」,在下列登錄機碼中找出停用的 ActiveX 物件 CLSID:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\CLSID of the ActiveX control
    其中 CLSID of the ActiveX Control 是適當的 ActiveX 控制項的類別識別項。

    您可以看到「相容性旗標」的值是設定為 DWORD 00000400。
  2. 在 CLSID 機碼中新增 AlternateCLSID 字串值。
  3. 將 AlternateCLSID 字串值的資料設定為 {CLSID of the alternate ActiveX control},其中 {CLSID of the ActiveX Control} 是更新的 ActiveX 控制項的類別識別項。
AlternateCLSID 值會指示 Internet Explorer 重新導向到更新的 ActiveX 控制項的 CLSID。您最多可以鏈結十個層級的重新導向。

下列版本的 Internet Explorer 支援 AlternateCLSID 值。
  • 適用於 Windows 2000 且具有 MS03-004 (含) 以後版本的 Internet Explorer 5.01 Service Pack 2 (含) 以後版本
  • 具有 MS02-068 (含) 以後版本的 Internet Explorer 5.5 Service Pack 2
  • Internet Explorer 6 Service Pack 1
  • 適用於 Windows XP 且具有 MS02-068 (含) 以後版本的 Internet Explorer 6
  • 適用於 Windows Server 2003 的 Internet Explorer 6
注意 本文未列出的 Internet Explorer 版本,可能處於產品生命週期的延伸階段,或者不再受到支援。您可以在這些版本的 Windows 和 Internet Explorer 中設定刪除位元,但 Microsoft 還是建議您升級到支援的 Internet Explorer 版本,並套用所有適當的更新。 如需有關如何判斷 Internet Explorer 版本的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
164539? (http://support.microsoft.com/kb/164539/ ) 如何判斷 Internet Explorer 的安裝版本

這篇文章中的資訊適用於:
  • Microsoft Internet Explorer 5.01 Service Pack 2
  • Microsoft Internet Explorer 5.01 Service Pack 3
  • Microsoft Internet Explorer 5.01 SP4
  • Microsoft Internet Explorer 5.5
  • Microsoft Internet Explorer 6.0
  • Microsoft Internet Explorer 6.0 Service Pack 1
  • Windows Internet Explorer 7 for Windows Server 2003 IA64
  • Windows Internet Explorer 7 for Windows XP
  • Windows Internet Explorer 7 for Windows Server 2003
關鍵字:?
kbhowto kbenv KB240797
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。
 

文章翻譯