共用方式為


AppIDFlags

一組旗標,可控制 COM 伺服器的啟用行為。

登錄專案

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID
   {AppID_GUID}
      AppIDFlags = flags

言論

這是 REG_DWORD 值。

旗標值 不斷
0x1 APPIDREGFLAGS_ACTIVATE_IUSERVER_INDESKTOP
0x2 APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND
0x4 APPIDREGFLAGS_ISSUE_ACTIVATION_RPC_AT_IDENTIFY

 

APPIDREGFLAGS_ACTIVATE_IUSERVER_INDESKTOP描述

如果在 AppIDFlags 中清除 APPIDREGFLAGS_ACTIVATE_IUSERVER_INDESKTOP 旗標,或 AppIDFlags 不存在, 在終端機伺服器會話中對 Interactive User COM 伺服器提出啟用要求的用戶端,將會系結至或啟動並系結至啟用要求中會話 視窗站 台的 “default” 桌面中的 COM 伺服器。 例如,如果用戶端執行會話 3 的 “winsta0\desktop1” ,會話 3 的啟用要求會系結至會話 3 的 “winsta0\default” 中的 COM 伺服器,即使會話 3 的 “winsta0\desktop1” 實例已在會話 3 的 “winsta0\desktop1” 中執行。

如果在 AppIDFlags 值中設定 APPIDREGFLAGS_ACTIVATE_IUSERVER_INDESKTOP 旗標,COM 將會系結至或啟動並系結至用戶端桌面執行的伺服器進程,以及啟用要求中的會話。 例如,如果用戶端在會話 3 中執行 「winsta0\desktop1」,會話 3 的啟用要求會系結至會話 3 中的 COM 伺服器,或啟動並系結至會話 3 中的 COM 伺服器,即使 COM 伺服器的實例已在會話 3 中的 “winsta0\default” 中執行。

用戶端可以使用 會話Moniker,在用戶端提出啟用要求時指定與客戶端會話不同的會話。

APPIDREGFLAGS_ACTIVATE_IUSERVER_INDESKTOP 旗標僅適用於設定為 RunAs 的 COM 伺服器,Interactive User“。

APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND描述

如果在 AppIDFlags中設定 APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND 旗標,則會啟動設定為 RunAs “Activator” 的 COM 伺服器,其進程安全性描述項允許 PROCESS_ALL_ACCESS 進程令牌的 LogonID SID。 此外,安全性描述元的擁有者將會設定為進程令牌的LogonID SID。

如果在 AppIDFlags中設定 APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND 旗標,則會啟動設定為 RunAs “This User” 的 COM 伺服器,其進程安全性描述項允許進程令牌的 LogonID SID 中 PROCESS_ALL_ACCESS。 此外,安全性描述元的擁有者將會設定為進程令牌的LogonID SID。 此外,COM 服務控制管理員 (SCM) 會修改 COM 伺服器進程的令牌,如下所示:

  • 它會將APPID SID新增至令牌。 它會在令牌預設的任意訪問控制清單 (DACL) 中授與 APPID SID 完整存取權。 在 Windows Vista 和更新版本的 Windows 中,它會在令牌預設 DACL 中授與 OwnerRights SID READ_CONTROL 許可權。 在 Windows Vista 之前的 Windows 版本中,它會將令牌擁有者設定為 APPID SID。

使用 APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND 旗標時,必須考慮下列安全性考慮:

  • APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND 旗標是由在其中一個內建服務安全性內容下啟動的 COM 伺服器所設定;NetworkService 或 LocalService 帳戶。 如果伺服器模擬具有特殊許可權的用戶端,且未設定 APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND 旗標,則具有相同安全性內容的其他進程中執行的惡意代碼可能會藉由從 COM 伺服器進程劫持特殊許可權客戶端的模擬令牌來提升許可權。
  • 設定 APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND 旗標時,COM 會在 RunAs “Activator” COM 伺服器的情況下強化進程對象的安全性描述元。 對於這類伺服器,COM 用戶端預期會強化它用於 COM 啟用的令牌。
  • 設定 APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND 旗標時,COM 會在 RunAs “This User” COM 伺服器的情況下強化進程對象的安全性描述元。 它也強化 COM 伺服器的進程令牌,因為 COM SCM 是建立令牌的實體。

只有在套用MSRC8322修補程式時,Windows XP、Windows Server 2003、Windows Vista 和 Windows Server 2008 才支援 APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND 旗標(安全性公告 MS09-012)。 Windows 7 和更新版本的 Windows 原生支援。

APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND 旗標僅適用於設定為 RunAs “Activator” 或 “This User” 的 COM 伺服器。 它不適用於NT服務的 COM 伺服器。

APPIDREGFLAGS_ISSUE_ACTIVATION_RPC_AT_IDENTIFY描述

如果在 AppIDFlags中設定 APPIDREGFLAGS_ISSUE_ACTIVATION_RPC_AT_IDENTIFY 旗標,COM SCM 會使用模擬層級的 RPC_C_IMP_LEVEL_IDENTIFY,對 COM 伺服器進程發出物件啟用要求。

如果未設定 APPIDREGFLAGS_ISSUE_ACTIVATION_RPC_AT_IDENTIFY 旗標,COM SCM 會使用模擬層級的 RPC_C_IMP_LEVEL_IMPERSONATE,對 COM 伺服器進程發出物件啟用要求。

使用 APPIDREGFLAGS_ISSUE_ACTIVATION_RPC_AT_IDENTIFY 旗標時,必須考慮下列安全性考慮:

  • APPIDREGFLAGS_ISSUE_ACTIVATION_RPC_AT_IDENTIFY 旗標是要由在物件啟用要求中代表用戶端執行的 COM 伺服器使用。 針對這類伺服器,在 RPC_C_IMP_LEVEL_IDENTIFY 發出 COM SCM 發出物件啟用要求,可將 SE_IMPERSONATE_NAME 層級出現在進程中的特殊許可權令牌機率降到最低。

Windows 7 和更新版本的 Windows 支援 APPIDREGFLAGS_ISSUE_ACTIVATION_RPC_AT_IDENTIFY 旗標。

Desktops

模擬層級

互動式使用者

工作階段Monikers

視窗月臺