DuplicateTokenEx用于更改Windows会话

时间:2014-02-14 20:06:46

标签: c++ session windows-7

我有一个以系统(在会话0中)运行的服务,该服务能够在桌面上(在用户的会话中)生成进程。我遵循此处描述的确切方法:http://www.developerfusion.com/community/blog-entry/8389765/creating-a-process-in-another-user-session/

这段代码已经工作多年了,但我最近发现子程序上的Windows文件I / O对于生成的进程来说比用普通用户手动运行的情况要糟糕得多。

通过启动记事本(从会话0中运行的守护程序),并尝试通过Windows对话框打开文件,可以看到惩罚。只需要10秒钟就可以启动“打开”文件浏览器。我使用了进程监视器,发现文件和注册表访问有近1,000,000个事件。在手动启动的记事本上执行相同的过程时,会有大约6,000个事件。

我假设我在令牌模仿中遗漏了一些旗帜,但我无法在网上找到任何东西。我通过从会话1到会话0运行它来排除我的CreateProcessAsUser代码,并且会话1代码与手动启动相同。任何想法都将不胜感激。

额外信息:此问题可能非常具体,因为我在网络上而不是本地计算机上有漫游配置文件。

0 个答案:

没有答案