首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >删除Windows上的C++中的权限

删除Windows上的C++中的权限
EN

Stack Overflow用户
提问于 2009-10-07 17:19:38
回答 1查看 14.2K关注 0票数 19

在Windows上运行的C++应用程序有可能在运行时删除权限吗?

例如,如果用户以管理员身份启动我的应用程序,但没有理由以管理员身份运行我的应用程序,我可以以某种方式放弃管理员权限吗?

简而言之,我想在main()函数中编写代码来删除我不需要的特权(例如,对Windows目录的写访问权限)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-10-07 17:41:57

可以,您可以使用AdjustTokenPrivileges从令牌中删除不需要的和危险的权限。您可以在不立即需要时禁用(稍后可以启用权限),也可以从令牌中完全删除权限。

您还可以通过CreateRestrictedToken创建一个受限令牌,并重新启动使用该受限令牌运行的应用程序。CreateRestrictedToken可用于禁用权限并从令牌中删除组(如Administrators Group)。

您可以使用AdjustTokenGroups从正在运行的进程的令牌中删除管理员组,但我从未在已经运行的进程上尝试过这种方法。

请注意,特权不包括对Windows目录的写访问权限。系统中的资源具有ACL's,它控制谁有权访问。系统和管理员对Windows目录具有写访问权限。

票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1533017

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档