AppID 的英文全稱是 Application Identifier AppID(應用程式識別符號)GUID(全域性唯一識別符號)

suv789發表於2024-03-09

AppID(應用程式識別符號)的概念起源於 Microsoft 的 Component Object Model(COM)技術。在 COM 中,每個元件都有一個唯一的識別符號,稱為 Class ID(CLSID),用於標識該元件的類。而 AppID 則是針對 COM 元件的另一種識別符號,它用來標識和控制 COM 元件的行為方式、安全設定、併發性等方面。

AppID 的引入主要是為了解決以下幾個問題:

  1. 控制許可權: AppID 可以用於指定 COM 元件的訪問許可權,例如確定哪些使用者或程序可以訪問該元件。
  2. 啟動策略: AppID 可以定義 COM 元件的啟動策略,包括啟動方式、執行時環境等。
  3. 併發性設定: AppID 可以配置 COM 元件的併發性行為,例如確定多個客戶端如何與元件進行互動。

AppID 的引入主要是為了解決以下幾個問題

  1. 元件的唯一標識

    • 在 COM 中,存在大量的可重用元件。為了確保每個元件都能夠被唯一標識和定位,引入了 AppID 的概念。每個元件都可以與一個唯一的 AppID 關聯,從而確保在系統中能夠準確地找到和使用特定的元件。
  2. 許可權控制和安全性

    • COM 元件通常需要進行許可權控制,以限制對元件的訪問和操作。透過為每個元件分配獨立的 AppID,並配置相應的安全設定,可以實現精細的許可權控制。這樣可以確保只有授權的使用者或程序才能呼叫和使用特定的元件,提高系統的安全性。
  3. 啟動策略和執行時環境

    • 不同的 COM 元件可能具有不同的啟動策略和執行時環境要求。例如,某些元件需要以單例模式執行,而其他元件可能需要支援多執行緒操作。透過為每個元件指定獨立的 AppID,可以靈活配置元件的啟動策略和執行時環境,確保元件能夠按照預期的方式啟動和執行。
  4. 版本管理

    • COM 支援多個版本的同一個元件同時存在於系統中。透過為每個版本分配不同的 AppID,可以實現版本管理,確保不同版本的元件能夠並存,並避免版本衝突。
  5. 併發性和執行緒模型

    • COM 元件需要考慮多執行緒環境下的併發訪問。透過為每個元件指定特定的 AppID,並配置相應的併發性設定,可以控制元件在多執行緒環境中的行為,確保併發操作的正確性和穩定性。
  6. 登錄檔管理

    • AppID 可以用於登錄檔管理,幫助系統跟蹤和識別 COM 元件。透過在登錄檔中配置 AppID,可以方便地查詢和管理元件的資訊,包括元件的 CLSID(Class Identifier)、路徑、安全設定等。
  7. 跨程序通訊

    • 在某些情況下,需要實現跨程序的元件通訊。AppID 可以幫助識別和管理跨程序通訊所涉及的元件,確保不同程序間能夠正確地互動和通訊。
  8. 執行時環境約束

    • 某些 COM 元件可能對執行時環境有特定的約束要求,如要求在特定的作業系統版本下執行,或者依賴於特定的系統配置。透過為元件指定特定的 AppID,並配置相應的約束條件,可以確保元件在符合條件的環境下執行,提高元件的穩定性和可靠性。
  9. 分散式系統支援

    • 在分散式系統中,可能涉及多臺計算機上的 COM 元件進行協作。透過為每個元件分配獨立的 AppID,可以在不同的計算機上唯一標識和管理元件,實現分散式系統的支援和管理。
  10. 監控和除錯

    • 使用 AppID 可以更好地監控和除錯 COM 元件的執行情況。透過檢視與特定 AppID 關聯的日誌和狀態資訊,可以追蹤元件的呼叫情況,定位問題並進行除錯。
  11. 跨平臺相容性

    • 透過為每個元件分配獨立的 AppID,可以更好地實現跨平臺的相容性。不同平臺上的元件可以使用不同的 AppID,從而避免平臺之間的衝突,確保元件能夠在不同平臺上穩定執行。
  12. 動態元件切換

    • 在某些場景下,需要動態地切換或替換元件。透過為每個元件指定獨立的 AppID,可以更靈活地進行元件的動態切換和替換,而無需修改呼叫元件的程式碼。
  13. 管理和維護

    • 使用 AppID 可以更好地管理和維護系統中的元件。可以透過 AppID 來跟蹤和記錄元件的使用情況、效能指標等資訊,幫助系統管理員進行元件的管理和維護工作。
  14. 擴充套件性和模組化

    • 透過為每個元件分配獨立的 AppID,可以更好地實現系統的擴充套件性和模組化。新的元件可以被分配新的 AppID,從而與現有元件相互獨立,便於系統的擴充套件和升級。
  15. 第三方元件整合

    • 當系統需要整合第三方元件時,可以透過為第三方元件分配獨立的 AppID,確保第三方元件與系統內部元件的正確整合和操作,同時能夠進行許可權控制和安全管理。

透過為每個 COM 元件指定一個唯一的 AppID,可以更精細地控制和管理元件的行為,確保其在系統中的安全性和穩定性。AppID 的引入使得開發人員和系統管理員能夠更好地管理和配置 COM 元件,提高了系統的可靠性和安全性。因此,AppID 的概念是為了完善 COM 技術體系,使得元件之間的互動更加可控和安全。


AppID(應用程式識別符號)作為 Component Object Model(COM)技術的一部分,經歷了幾個發展階段,主要包括以下幾個階段:

  1. 初期階段:

    • 在 COM 技術剛開始發展的階段,AppID 主要用於標識和控制 COM 元件的行為方式和許可權設定。開發人員可以透過為每個元件指定一個唯一的 AppID 來定義元件的安全性、啟動策略和併發性等方面的設定。
  2. Windows NT 4.0 階段:

    • 隨著 Windows NT 4.0 的釋出,Microsoft 引入了更多關於安全性和許可權控制的功能,AppID 也得到了進一步的加強和擴充套件。此階段中,AppID 的應用範圍擴大,可以用於更細粒度的許可權控制和安全配置。
  3. Windows 2000 階段:

    • 在 Windows 2000 釋出後,AppID 的功能得到進一步完善和最佳化。系統管理員可以透過配置登錄檔中的 AppID 來管理和控制 COM 元件的行為,確保系統的穩定性和安全性。
  4. 後續階段:

    • 隨著作業系統和 COM 技術的不斷髮展,AppID 的功能和應用也在不斷演變和完善。在當前階段,AppID 仍然是 COM 元件管理中重要的一部分,用於提供更加精細化的許可權控制和配置管理。

AppID 作為 COM 技術的重要組成部分,在不同階段經歷了功能的擴充套件和最佳化,以適應不斷變化的系統需求和安全標準。透過不斷的發展和改進,AppID 已經成為管理和控制 COM 元件行為的重要工具之一,為系統的穩定性和安全性提供了有力支援。


AppID(應用程式識別符號)在 Component Object Model(COM)技術中具有多種應用場景,主要包括以下幾個方面:

  1. 許可權控制

    • 透過為每個 COM 元件指定一個唯一的 AppID,可以實現對元件的訪問許可權控制。系統管理員可以配置每個 AppID 的安全設定,包括確定哪些使用者或程序有權訪問該元件,從而確保系統的安全性。
  2. 啟動策略

    • AppID 可以定義 COM 元件的啟動策略,包括指定元件如何被例項化和啟用。這包括設定元件的執行時環境、執行緒模型等,以確保元件能夠按照預期的方式啟動和執行。
  3. 併發性設定

    • AppID 可用於配置 COM 元件的併發性行為,確定多個客戶端如何與元件進行互動。透過設定 AppID,可以控制元件的執行緒模型、併發訪問限制等,以確保元件在多執行緒環境下能夠正確執行。
  4. 版本管理

    • 在 COM 中,不同版本的同一個元件可以使用不同的 AppID 進行標識,從而實現版本管理。透過為不同版本的元件分配不同的 AppID,可以同時在系統中執行多個版本的元件,而不會產生衝突。
  5. 安全性增強

    • 透過結合使用 AppID 和其他安全機制(如登錄檔設定、許可權管理等),可以增強 COM 元件的安全性。AppID 可以作為安全配置的一部分,幫助確保元件在系統中受到適當的保護。

AppID 在 COM 技術中扮演著重要的角色,用於管理和控制 COM 元件的行為方式、安全設定和許可權控制。透過合理配置和使用 AppID,可以確保系統中的 COM 元件能夠安全、穩定地執行,並有效地與其他元件進行互動。


AppID 的英文全稱是 Application Identifier。

在登錄檔中,HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID\{AppID_GUID} 是用來儲存應用程式識別符號(AppID)及其相關資訊的地方。

  • AppID(應用程式識別符號):AppID 是用於標識和控制COM元件(Component Object Model 元件)的一種機制。每個COM元件都有一個唯一的AppID,可以幫助系統識別和管理這些元件。AppID 可以用來指定許可權、啟動方式、併發設定等與元件相關的配置資訊。

  • GUID(全域性唯一識別符號):GUID 是一種由演算法生成的唯一識別符號,用於確保在系統中的所有實體(如元件、物件、介面等)都具有唯一的標識。在登錄檔中,使用 GUID 來作為鍵名或值名可以確保其在整個系統中是唯一的,避免衝突和重複。

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID\{AppID_GUID} 中,{AppID_GUID} 表示一個特定的 AppID 的 GUID。透過這個登錄檔路徑,系統可以根據 AppID 來查詢和管理與之相關的 COM 元件的配置資訊,確保這些元件能夠正常執行並按照預期的方式工作。

AppID 用於標識和控制 COM 元件,而 GUID 則用來確保在系統中的唯一性,以便系統能夠準確識別和管理各個元件及其相關資訊。

AppID 金鑰 - Win32 apps | Microsoft Learn

AppID 透過兩種不同的機制對映到可執行檔案和類:

  • 使用可識別 AppID 金鑰的 128 位全球唯一識別符號 (GUID)。 一個類會在 CLSID 鍵下的命名值“AppID”中顯示其對應的 AppID。 此對映在啟用期間使用。
  • 使用表示可執行程式名稱的命名值(如“MYOLDAPP.EXE”)。 此命名值的型別為 REG_SZ,包含與可執行檔案相關聯的 AppID 的字串表示。 此對映用於獲取預設訪問許可權和身份驗證級別。

相關文章