AppIDFlags

控制 COM 服务器的激活行为的一组标志。

注册表项

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

备注

这是 REG _ DWORD 值。

标志值 常数
0x1 APPIDREGFLAGS _ 激活 _ IUSERVER _ INDESKTOP
0x2 APPIDREGFLAGS _ 安全 _ 服务器进程 _ _ SD _ 和 _ 绑定
0x4 APPIDREGFLAGS _ 发出 _ 激活 _ RPC AT _ _ IDENTIFY

APPIDREGFLAGS _ 激活 _ IUSERVER _ INDESKTOP 说明

如果在 AppIDFlags 中清除 了 APPIDREGFLAGS _ ACTIVATE _ IUSERVER _ INDESKTOP 标志,或者 AppIDFlags 不存在,则针对交互式用户 COM服务器提出激活请求的终端服务器会话中的客户端将绑定到或启动 COM 服务器,并绑定到激活请求中会话"winsta0"窗口工作站 的"默认"桌面中的 COM 服务器。 例如,如果客户端运行的是会话 3 的"winsta0 desktop1",则会话 3 的激活请求将绑定到或启动并绑定到会话 3 的"winsta0 default"中的 COM 服务器,即使 COM 服务器的实例已在会话 \ \ 3 的"winsta0 \ desktop1"中运行。

如果在 AppIDFlags 值中设置了 APPIDREGFLAGS _ ACTIVATE _ IUSERVER _ INDESKTOP 标志,则 COM 将绑定到或启动并绑定到客户端桌面中运行的服务器进程和激活请求中的会话。 例如,如果客户端在会话 3 中运行"winsta0 desktop1",则会话 3 的激活请求将绑定到或启动并绑定到会话 3 中"winsta0 desktop1"中的 COM 服务器,即使 COM 服务器的实例已在会话 \ \ 3 的"winsta0 \ default"中运行。

客户端可以在提出 激活 请求时,使用会话名字对象指定不同于客户端会话的会话。

APPIDREGFLAGS _ ACTIVATE _ IUSERVER _ INDESKTOP 标志仅适用于配置为运行方式"交互式 用户"的COM 服务器。

APPIDREGFLAGS _ 安全 _ 服务器进程 _ _ SD _ 和 _ 绑定说明

如果在 AppIDFlags 中设置了 APPIDREGFLAGS _ SECURE SERVER PROCESS _ _ _ SD AND _ _ BIND 标志,则配置为 RunAs"Activator"的 COM 服务器将启动一个进程安全描述符,该描述符允许进程对进程令牌的 LogonID SID 进行 PROCESS _ ALL _访问。 此外,安全描述符的所有者将设置为进程令牌的 LogonID SID。

如果在 AppIDFlags 中设置了 APPIDREGFLAGS _ SECURE SERVER PROCESS _ _ _ SD AND _ _ BIND 标志,则配置为运行方式"此用户"的 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"此用户"COM 服务器的情况下会强化进程对象的安全描述符。 它还强化了 COM 服务器的进程令牌,因为 COM SCM 是创建令牌的实体。

只有在应用 MSRC8322 修补程序 (安全公告 MS09-012) 时,WINDOWS XP、Windows Server 2003、Windows Vista 和 Windows Server 2008 才支持 APPIDREGFLAGS _ SECURE SERVER PROCESS _ _ _ SD _ _ 和 BIND 标志。 7 及更高版本的 Windows 中本机支持Windows。

APPIDREGFLAGS _ SECURE _ SERVER PROCESS _ _ SD AND _ _ BIND 标志仅适用于配置为运行方式"激活器"或"此用户"的 COM 服务器。 它不适用于作为 NT 服务的 COM 服务器。

APPIDREGFLAGS _ 发出 _ 激活 _ RPC AT IDENTIFY _ _ 说明

如果在 AppIDFlags 中设置了 APPIDREGFLAGS _ ISSUE ACTIVATION _ _ RPC AT _ _ IDENTIFY 标志,则 COM SCM 使用 RPC C IMP _ LEVEL _ _ _ IDENTIFY的模拟级别向 COM 服务器进程发出对象激活请求。

如果未 设置 APPIDREGFLAGS _ 问题激活 _ _ RPC AT _ _ IDENTIFY 标志,COM SCM 会使用 RPC C IMP LEVEL _ _ _ _ IMPERSONATE的模拟级别向 COM 服务器进程发出对象激活请求。

使用 APPIDREGFLAGS 问题 _ _ ACTIVATION _ RPC AT _ _ IDENTIFY 标志时,必须考虑以下安全注意事项:

WINDOWS 7 及更高版本支持 APPIDREGFLAGS _ _ 问题 ACTIVATION _ RPC AT _ _ IDENTIFY Windows标志。

台式机

模拟级别

交互式用户

会话名字对象

窗口工作站