RunAs

将类配置为在远程客户端激活时在特定用户帐户下运行,而无需编写为服务应用程序。

注册表项

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID
   {AppID_GUID}
      RunAs = value

注解

该值指定用户名,并且必须是 UserNameDomainUserName**\** 或字符串“Interactive User”的任一形式。 还可以为本地服务) 指定字符串“nt authority\localservice” (,并为网络服务) 指定“nt authority\networkservice (”。 当 {AppID_GUID} 引用已启动的 COM 服务器或类表中具有条目的 COM 服务器时,还可以指定字符串“nt authority\system”。 但是,不能对尚未启动的 COM 服务器使用“nt authority\system”。 “nt authority\localservice”、“nt authority\networkservice”和“nt authority\system”的默认密码为“”“ (空字符串) 。

备注

从 Windows Vista 开始,不再需要空密码来配置“nt authority\localservice”、“nt authority\networkservice”和“nt authority\system”RunAs 设置。

 

配置为以特定用户身份运行的类可能不会在任何其他标识下注册,因此,除非 COM 代表实际激活请求启动进程,否则使用此 CLSID 调用 CoRegisterClassObject 会失败。

用户名取自类的 AppID 密钥下的 RunAs 值。 如果用户名为“交互式用户”,则服务器在当前登录的用户标识中运行,并连接到交互式桌面。

否则,将从注册表的一部分检索密码,该部分仅适用于计算机的管理员和系统。 然后使用用户名和密码创建运行服务器的登录会话。 以这种方式启动时,用户使用自己的桌面和窗口工作站运行,并且不与交互用户或其他用户在其他用户帐户中运行的交互用户或其他 UI 元素共享窗口句柄、剪贴板或其他 UI 元素。

若要为 RunAs 类建立密码,必须使用安装在系统目录中的 DCOMCNFG 管理工具。

对于 DCOM 服务器使用的 RunAs 标识,值中指定的用户帐户必须有权以批处理作业身份登录。 可以使用本地安全策略管理工具添加此权限。 转到 本地策略 并打开 用户权限分配。 选择 “以批处理作业身份登录”,并添加用户帐户。

RunAs 值不用于配置为作为服务运行的服务器。 需要在 LocalSystem 以外的标识下运行的 COM 服务应使用服务控制面板小程序或服务控制器函数设置适当的用户名和密码。 (有关这些函数的详细信息,请参阅 Services.)

备注

从 Microsoft Windows Server 2003 起,AppID 类从HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID显式读取,这与大多数注册表项不同,与HKEY_CLASSES_ROOT\AppID不可互换。

 

注册 COM 服务器