CreateProcessWithUser 无法模拟用户,出现错误 87、1349

Posted

技术标签:

【中文标题】CreateProcessWithUser 无法模拟用户,出现错误 87、1349【英文标题】:CreateProcessWithUser fails to impersonate user with errors 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 获取令牌,它也可以正常工作。

有人知道为什么吗?

【问题讨论】:

MSDN 上的错误 87:msdn.microsoft.com/en-us/library/… 我知道错误是无效参数...问题是什么以及为什么 【参考方案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函数。

【讨论】:

以上是关于CreateProcessWithUser 无法模拟用户,出现错误 87、1349的主要内容,如果未能解决你的问题,请参考以下文章

抽屉模式微信小程序无法添加

请问vegas为啥会无法渲染?以前渲染都成功的,这次就一直报错,根据网上的方法找不到对应的编码模

快速模取幂

ZBrush 里刷的模型面数太多 无法导入3dMAX 修改 或者减面 怎么办 白刷了?

k8s集群启动了上万个容器(一个pod里放上百个容器,起百个pod就模拟出上万个容器)服务器超时,无法操作的解决办法

POJ 2115 C Looooops(模线性方程)