什麼是CLSID註冊表項?

CLSID或類標識符是一個字母數字字符串(包括數字和字母字符)符號,用於表示組件對像模型或基於COM的程序的特定實例。它允許操作系統和軟件(尤其是Windows)檢測和訪問軟件組件,而無需通過名稱識別它們。雖然微軟已經逐步淘汰COM的使用,轉而使用.NET基礎設施,但COM仍然被用作許多常用程序的重要組件,並且沒有計劃停止使用。

使用COM和相應CLSID的對象示例包括ActiveX,“我的電腦”目錄和Windows“開始”菜單。 Windows註冊表中的典型CLSID可能如下所示:

{48E7CAAB-B918-4E58-A94D-505519C795DC}

您最有可能遇到CLSID是網站要求您更新ActiveX或其他程序。您的瀏覽器通過檢查其CLSID來檢測軟件版本,並將此信息傳輸到網站而不會損害您的計算機。

但是,虛假媒體更新通常用於分發惡意軟件和其他PC威脅,您應該避免從隱藏不信任的網站下載更新。

當好的CLSID條目變壞時

如果CLSID已損壞,您的PC可能會遇到與CLSID鏈接的程序相關的問題;一個常見問題是損壞CLSID導致軟件無法驗證自己的版本並自行更新。作為一種易於實施的解決方案,卸載並重新安裝軟件通常可以解決此問題。

與Registry CLSID條目相關的最常見問題是程序在卸載程序的其餘部分時無法從註冊表中刪除其CLSID。雖然這是一個糟糕的編程習慣,使PC的註冊表混亂無意義的文本條目,但未使用的CLSID條目不太可能損害您的計算機。但是,一些註冊表清理程序和其他系統維護程序專門用於刪除此基於CLSID的“垃圾郵件”。在非常極端的情況下,例如使用具有較低系統資源的計算機,具有太多未使用的CLSID條目的註冊表可能會導致性能問題。

如果您有興趣手動更正CLSID註冊表項,則應該高度謹慎。對註冊表的更改可能會以多種方式損壞您的操作系統,最明顯的是導致它無法識別關鍵組件和程序。無論您是否有興趣更改計算機的CLSID條目,建議在所有情況下通過系統還原點或其他方法備份Windows註冊表。

消失的CLSID

雖然CLSID通常是您註冊表中的永久文本條目 - 至少在您卸載它鏈接到的程序之前 - 臨時文件夾和文件也可能在其名稱中顯示CLSID條目。這通常是由程序安裝程序在解除文件之前解壓縮要用於安裝的文件引起的。安裝完成後,大多數此類文件和文件夾應自動刪除。如果編碼不良或安裝中斷,您可能需要自己刪除這些對象,儘管它們不會損壞您的計算機。

並非所有使用CLSID的程序都被強制將其CLSID條目寫入Windows註冊表。 RegFree或無註冊COM組件能夠將其CLSID條目存儲在自己的EXE文件或單獨的XML文件中。這具有某些優點,例如允許程序作為幾個不同版本安裝多次. 但是,RegFree COM支持更加有限,有時(在DirectX等系統範圍的程序中)完全不可用。

CLSID的COM與COM Universe的其餘部分之間的區別

帶有CLSID的COM接口是一個組件對像模型,一種使用面向對象編程原理(或OOP)的接口方法。它與網絡域名後綴.COM沒有直接關係,後者表示頂級“商業”域名。

同樣,CLSID的COM組件與.COM文件無關,後者是可執行文件或EXE文件的子類型。雖然某些Windows組件和其他程序使用.COM,但這種過時的文件格式需要在64位Windows操作系統上不包含(默認情況下)的MS-DOS模擬。

CLSID在惡意軟件行業的地位

CLSID條目可用於運行有害程序以及安全程序。 Rootkit,特洛伊木馬,惡意瀏覽器幫助程序對象和其他類型的惡意軟件都可以利用CLSID系統自動啟動或在觸發某些條件時啟動。大多數有能力的反惡意軟件程序將檢測並刪除惡意CLSID條目以及與之關聯的惡意軟件。但是,與正常的CLSID條目一樣,已刪除的程序的未刪除的CLSID惡意軟件條目無法對您的計算機造成損害。

眾所周知,惡意軟件程序使用CLSID條目來調用其他程序(例如Internet Explorer)。這些程序可能顯示也可能不顯示打開的可見指示,但在大多數情況下,您應該能夠通過任務管理器和類似實用程序檢測打開程序的內存進程。此類攻擊可用於在PC用戶不知情的情況下進行各種在線攻擊。雖然CLSID的知識對於臨時PC的使用是不必要的,但是對其功能和限制的工作意識可以幫助解決軟件和與註冊表相關的錯誤,同時盡量減少挫敗感。