RunAs
将类配置为在远程客户端激活时在特定用户帐户下运行,而无需编写为服务应用程序。
注册表项
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID
{AppID_GUID}
RunAs = value
言论
该值指定用户名,并且必须是 userName 、Domain**\**UserName 或字符串“Interactive User”的窗体之一。 还可以指定字符串“nt authority\localservice”(对于本地服务)和“nt authority\networkservice”(对于网络服务)。 当 {AppID_GUID} 引用已启动或类表中有条目的 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 代表实际激活请求启动进程,否则调用 CoRegisterClassObject 失败。
用户名取自类的 AppID 键下的 RunAs 值。 如果用户名为“Interactive User”,则服务器在当前登录的用户的标识中运行,并连接到交互式桌面。
否则,将从注册表的一部分检索密码,这些注册表仅适用于计算机的管理员和系统。 然后,用户名和密码用于创建运行服务器的登录会话。 以这种方式启动时,用户使用自己的桌面和窗口工作站运行,并且不与交互用户或其他用户帐户中运行的交互用户或其他 UI 元素共享窗口句柄、剪贴板或其他 UI 元素。
若要为 RunAs 类建立密码,必须使用系统目录中安装的 DCOMCNFG 管理工具。
对于 DCOM 服务器使用的 RunAs 标识,值中指定的用户帐户必须有权以批处理作业身份登录。 可以使用本地安全策略管理工具添加此权限。 转到 本地策略 并打开 用户权限分配。 选择 以批处理作业登录,然后添加用户帐户。
RunAs 值不用于配置为作为服务运行的服务器。 需要在 LocalSystem 以外的标识下运行的 COM 服务应使用服务控制面板小程序或服务控制器函数设置适当的用户名和密码。 (有关这些函数的详细信息,请参阅 服务。)
注意
自 Microsoft Windows Server 2003 起,AppID 类从 HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID显式读取,这与大多数注册表项不同,与 HKEY_CLASSES_ROOT\AppID不可互换。
相关主题