检测程序是否以完全管理员权限运行
我需要确定我的程序是否以完全管理员权限运行。我的意思是,如果 uac 已打开(对于 win vista/7),我需要确定程序是否实际上具有管理员权限(例如用户是否右键单击并选择“以管理员身份运行”)并且不受 uac 限制。我如何在 C++ 中做到这一点?
I need to determine if my program is running with full administrator rights. By that I mean if uac is turned on (for win vista/7) that I need to determine if the program actually has admin rights (like if the user right clicked and selected "run as administator") and not limited by uac. How do I do this in C++?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
其他替代方案包括:IsUserAnAdmin 或 AccessCheck
测试当前进程不需要检查令牌中的 TOKEN_ELEVATION* 内容,但如果您需要查明用户是否可以提升,则它很有用,因为他们有一个分割令牌等。
Other alternatives are: IsUserAnAdmin or AccessCheck
Checking the TOKEN_ELEVATION* stuff in the token is not required for testing the current process but it is useful if you need to find out if the user could elevate because they have a split token etc.
对于那些不太懂 Windows 的人(比如我),Anders 的答案进行了扩展:
An expansion on Anders' answer for those (like me) who are less Windows literate: