共用方式為


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 不存在,則終端伺服器會話中的用戶端會對互動式使用者 COM 伺服器提出啟用要求,將系結至或啟動並系結至啟用要求中會話 “winsta0” 視窗月臺的 “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 “Interactive User” 的 COM 伺服器

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 的 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修補程式(安全性公告 MS09-012)時,Windows XP、Windows Server 2003、Windows Vista 和 Windows Server 2008 才支援APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND旗標。 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 旗標時,必須考慮下列安全性考慮:

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

Desktops

模擬層級

互動式使用者

會話Monikers

視窗月臺