Currently I debug my service process from XP to Win7. One UAC problem appears.
It calls CreateProcessAsUser API. This API works well in all cases in XP and service mode for Win7.
But when I debug it in Win7, it fails. After a long time asking @MSDN and researching, one UAC issue comes up.
The debugging process runs in session 1 not session 0[service session].
UAC force use filtered token which means the privileges in this token is limited.
Even run as administrator, some priviliges are dropped.
So, it's the root reason why the call failed.
Workaround solutions:
a. Add privileges in LocalSecurity mmc:
SeAssignPrimaryTokenPrivilege
SeIncreaseQuotaPrivilege
to the user you logged on.
b. shutdown UAC.
本文探讨了在Windows 7系统中由于用户账户控制(UAC)导致的CreateProcessAsUser API调用失败的问题。当从XP迁移到Win7进行调试时,会遇到因调试过程运行在用户会话而非服务会话而导致的权限受限问题。文章提供了两种解决方案:一是通过本地安全设置增加特定权限,二是关闭UAC。
894

被折叠的 条评论
为什么被折叠?



