分配JobObject以使用从SYSTEM服务启动的非零会话ID进行处理

问题描述

我有一个Windows SYstem服务,该服务需要在已登录用户的上下文中启动新进程。与此同时,我需要为新流程创建一个具有一定限制的工作。

我正在提取explorer.exe的进程令牌,并将其复制以创建主令牌。我在CreateProcessAsUser中使用此令牌创建了一个新的进程,该进程在会话上下文为非零的用户上下文中运行。当我将作业分配给该进程时,AssignProcesstoJobObject函数将失败,并显示访问被拒绝错误。具体来说,我无法设置JOBOBJECT_BASIC_UI_RESTRICTIONS的限制(不过JOBOBJECT_EXTENDED_LIMIT_informatION可以使用)。

该进程被创建为挂起状态,在分配了作业之后,我恢复了线程。

当我使用当前进程的令牌(即会话ID为0的SYstem服务)而不是explorer.exe时,一切正常。

我正在Windows 10上对此进行测试

解决方法

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

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

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