全局命名空间CreateFileMapping和SeCreateGlobalPrivilege

时间:2013-08-21 22:03:08

标签: windows security winapi privileges

我正在使用共享内存映射进行进程间通信。此映射需要在会话之间可见,因此我尝试在全局命名空间中创建它。我知道正在运行的用户需要SeCreateGlobalPrivilege才能使其正常工作。

我编辑了本地安全策略(我不在域上)以授予我的用户“创建全局对象”权限,但是当我运行应用程序时,此权限不在访问令牌中。如果我以管理员身份运行,我就会获得该权限。

我错过了什么?为什么我没有获得这个特权?

2 个答案:

答案 0 :(得分:2)

在调用OpenThreadToken()之前,请尝试使用AdjustTokenPrivileges()CreateFileMapping()启用调用线程的权限。

Enabling and Disabling Privileges in C++

答案 1 :(得分:0)

如果您以管理员身份登录,则除非您以管理员身份运行,否则UAC将过滤该权限。

如果您以普通用户身份登录,则您将始终拥有该权限(如果您已通过本地安全策略授予该权限)