我编写了一个 c++ windows 应用程序 (A),它使用 LogonUser、LoadUserProfile 和 ImpersonateLoggedOnUser 来获得另一个用户 (Y) 的权限。这意味着 A 开始使用在工作站 (X) 上登录的用户。如果用户想要提升他的权限,他只需按一个按钮并以另一个用户身份登录,而无需将自己从 Windows 中注销并重新登录。
现在的情况是(根据函数的返回值):LogonUser 有效,LoadUserProfile 有效,ImpersonateLoggedOnUser 也有效。
模仿之后,我开始另一个过程。此进程是需要 OCX 控件的应用程序 (B)。这失败了,应用程序告诉我 .oxc 文件没有正确安装。
问题是,如果我直接以登录到机器 (X) 的用户身份启动 B,它就可以工作。如果我直接启动 B 作为我想使用 A 提升我的权限的用户 (Y),它会起作用。
如果我以 (X) 身份登录并在资源管理器中选择“运行身份”(Y),它就可以工作!
您知道我需要执行哪些步骤来执行与 Windows 中的“运行方式”对话框相同的操作吗?