AppID 金鑰
將一或多個 DCOM 物件的組態選項分組到登錄中的一個集中式位置。 由相同可執行檔裝載的 DCOM 物件會分組成一個 AppID,以簡化一般安全性和組態設定的管理。
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID\{AppID_GUID}
登錄值 | 描述 |
---|---|
AccessPermission | 描述可存取此類別實例的主體 存取控制 清單 (ACL)。 此 ACL 僅供未呼叫 CoInitializeSecurity 的應用程式使用。 |
ActivateAt 儲存體 | 設定用戶端,將物件具現化在與其所使用的持續性狀態相同的計算機上,或從中初始化物件。 |
AppID | 識別對應至具名可執行檔的AppID GUID。 |
AppIDFlags | 設定將設定為以「互動式使用者」身分執行的 COM 伺服器,將在非預設桌面中由客戶端啟動或系結。 |
AuthenticationLevel | 針對未呼叫 CoInitializeSecurity 的應用程式,或針對呼叫 CoInitializeSecurity 的應用程式設定驗證層級,並指定 AppID。 |
DllSurrogate | 可讓 DLL 伺服器在代理程式中執行。 如果指定空字串,則會使用系統提供的 Surrogate;否則,值會指定要使用之 Surrogate 的路徑。 |
DllSurrogateExecutable | 可讓 DLL 伺服器搭配 DllSurrogate 登錄值,在自定義代理程式中執行。 |
端點 | 設定 COM 應用程式以使用指定的 TCP 通訊埠號碼進行 DCOM 通訊。 |
LaunchPermission | 描述主體的 存取控制 清單(ACL),這些主體可以啟動這個類別的新伺服器。 |
LoadUser 設定 | 判斷 COM 是否會載入執行為啟動使用者應用程式身分識別之 COM 伺服器的使用者配置檔。 |
LocalService | 安裝物件即服務應用程式。 |
PreferredServerBitness | 設定此 COM 伺服器的慣用架構 32 位或 64 位。 |
RemoteServerName | 設定用戶端在未指定 COSERVERINFO 結構的啟用函式時,要求在特定電腦上執行物件。 |
ROTFlags | 控制執行中對象數據表中 COM 伺服器的註冊(ROT)。 |
RunAs | 當遠端用戶端啟動而不撰寫為服務應用程式時,將類別設定為在特定使用者帳戶下執行。 |
ServiceParameters | 指定要透過 LocalService 登錄值傳遞至 COM所安裝之物件的命令行參數。 |
SRPTrustLevel | 設定應用程式的軟體限制原則 (SRP) 信任等級。 |
AppID 會使用兩種不同的機制對應至可執行檔和類別:
- 使用識別AppID金鑰的128位全域唯一標識碼 (GUID)。 類別會指出其在具名值 「AppID」 中 CLSID 索引鍵底下的對應 AppID 。 此對應會在啟用期間使用。
- 使用指出可執行檔名稱的具名值(例如 “MYOLDAPP.EXE”。 這個具名值的類型 為 REG_SZ ,且包含與可執行文件相關聯的 AppID 字串表示。 此對應是用來取得預設訪問許可權和驗證層級。
HKEY_LOCAL_MACHINE\SOFTWARE\Classes 索引鍵會對應至HKEY_CLASSES_ROOT密鑰,此密鑰會保留以便與舊版 COM 相容。
針對 COM 伺服器,對應通常會在註冊程式期間或執行dcomcnfg.exe時產生並寫入登錄。 不過,想要使用AppID機碼設定安全性的 COM 客戶端必須建立適當的登錄機碼,並藉由呼叫登錄函式或使用Regedit.exe來指定必要的對應。 然後,您可以為客戶端設定 AccessPermission 或 AuthenticationLevel 等值。 例如,假設用戶端程式的可執行檔名稱為 「YourClient.exe」,而您想要將驗證層級設定為 「None」。 您可以使用Guidgen.exe或Uuidgen.exe來建立可執行檔的 AppID GUID。 然後,您會在登錄中設定值,如下列範例所示,其中00000001代表 “None” 的驗證層級:
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID
{MyGuid}
AuthenticationLevel = 00000001
MyClient.exe
AppID = {MyGUID}