2010-12-02 3 views
1

서비스에서 실행중인 Windows 2003 서버에서 createprocessasuser는 오류 87로 실패하고 WLEXECSERVER에서 사용자를 가장하지 못함 오류가 발생합니다. 윈도우 2003 서버 64 비트에서 CreateProcessWithUser가 오류가있는 사용자로 가장하지 못함 87, 1349

는 서비스에서 실행에 CreateProcessAsUser는 토큰이 OpenProcess -> OpenProcessToken(TOKEN_QUERY, TOKEN_DUPLICATE) -> DuplicateTokenEx (WITH GRANT_ALL, PrimaryToken, SecurityImpersonation).

WIN7에서 2008 R2는 문제없이 잘 작동하여 생성되는 오류 1349

실패합니다.

내가 WTSQueryUserToken으로 토큰을 가져 가면 잘 동작합니다.

누구나 이유가 무엇입니까?

+1

MSDN의 오류 87 : http://msdn.microsoft.com/en-us/library/ms681382%28v=VS.85%29.aspx#ERROR_INVALID_PARAMETER – Lekensteyn

+1

오류가 잘못된 매개 변수임을 알고 있습니다 ... 질문은 무엇이며 왜인가 – vdk

답변

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 기능을 보라 :

도움이 될 수 있습니다 몇 가지 해결 방법이 있습니다.