CreateProcessWithUser无法模拟错误87,1349的用户

时间:2010-12-02 09:01:19

标签: windows impersonation token createprocessasuser

在从服务运行的Windows 2003服务器上,createprocessasuser失败,错误87,WLEXECSERVER发出错误,表示无法模拟用户。

在从服务运行的64位Windows Server服务器上,createprocessasuser失败,错误为1349.

使用OpenProcess -> OpenProcessToken(TOKEN_QUERY, TOKEN_DUPLICATE) -> DuplicateTokenEx (WITH GRANT_ALL, PrimaryToken, SecurityImpersonation).

创建令牌

在WIN7和2008 R2上,它没有任何问题。

如果我使用WTSQueryUserToken获取令牌,它也能正常工作。

任何人都知道为什么?

1 个答案:

答案 0 :(得分:1)

在Windows XP上似乎存在同样的问题: 如果会话ID不为0且没有用户登录,则CreateProcessAsUser失败,错误233(0xE9)。此错误已在NT 6.0及更高版本上修复。

有些解决方法可能有所帮助: https://groups.google.com/d/msg/microsoft.public.win32.programmer.kernel/h72eJ7iMynE/zVgBe_aVj24J https://github.com/zealotous/ultravnc/blob/master/winvnc/winvnc/service.cpp

查看 CreateRemoteSessionProcess 功能。