COM Singleton 无法正确识别终端服务中的交互用户

问题描述

我有一个 COM 服务器和 COM exe(让我们将其命名为 exe1 和 exe2)。 COM 服务器启动 exe1,它是一个单例并仅以管理员身份运行。 COM 服务器是一个可以在任何用户上运行的 GUI 应用程序。 COM 服务器请求 exe1 启动 exe2,而 exe2 应该作为 COM 服务器请求的用户(交互式用户)启动。

问题是 exe1 以不同的用户身份启动 exe2,而不是请求启动 exe2 的用户

此问题仅存在于 Windows 终端服务中。在正常的远程桌面中,exe2 以正确的用户身份启动。

当我使用 DebugView 检查 exe1 的日志时,我看到 exe1 函数部分以 user1(请求启动 exe2 之外的另一个用户)执行,部分以 user2(用户请求启动 exe2)和 exe2 执行在执行 exe2 的 CoCreateInstance 的用户中启动。

如何在 2 个用户中逐个执行单个功能?终端服务中是否有任何设置可以避免此问题?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)