在从服务运行的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获取令牌,它也能正常工作。
任何人都知道为什么?
答案 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 功能。