【问题标题】:CreateProcessWithUser fails to impersonate user with errors 87, 1349CreateProcessWithUser 无法模拟用户,出现错误 87、1349
【发布时间】:2010-12-02 09:01:18
【问题描述】:

在 Windows 2003 服务器上,从服务运行时,createprocessasuser 失败并出现错误 87,并且来自 WLEXECSERVER 的错误提示无法模拟用户。

在 Windows 2003 服务器 64 位上,从服务运行,createprocessasuser 失败并出现错误 1349。

令牌是使用OpenProcess -> OpenProcessToken(TOKEN_QUERY, TOKEN_DUPLICATE) -> DuplicateTokenEx (WITH GRANT_ALL, PrimaryToken, SecurityImpersonation).创建的

在 WIN7 和 2008 R2 上运行良好,没有任何问题。

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

有人知道为什么吗?

【问题讨论】:

标签: windows impersonation token createprocessasuser


【解决方案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函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-14
    • 2012-08-22
    • 2013-10-01
    • 2013-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-03
    相关资源
    最近更新 更多