c++ - AdjustTokenPrivileges 能否提升管理员权限?

标签 c++ windows visual-studio-2010 visual-c++ mfc

windows下需要管理员权限的程序在启动时必须得到用户的权限。他们还可以通过右键单击 EXE 并选择“以管理员身份运行”以管理员权限运行。但是,在 EXE 启动之前,会出现一个消息框。真的很恶心。

现在我希望我的应用程序以管理员身份运行,并且我不希望在用户单击 EXE 文件时弹出消息框。

现在我想知道 AdjustTokenPrivileges 函数是否可以帮助我实现这一点。

谁能帮帮我?

最佳答案

您对权利和特权感到困惑。至少从 Windows API 的角度来看,这两者是完全不同的(尽管它们在很多时候被视为同义词,至少在处理“您可以在 Windows 上执行的操作”时)。

您真正需要的是提升权利的能力。除非系统的安全模型存在一些缺陷,否则您不应该这样做。要获得管理权限,目的是代码必须在管理帐户下运行——要么由用户最初以管理员身份登录,要么由他们在运行时输入凭据,如您所见。

特权(AdjustTokenPrivileges 实际操作的)是您有权做的事情,但如果没有特别启用 该特权。例如,假设您开始时以管理员身份登录。这给了您调整系统时钟的权利——但是调整系统时钟是普通程序几乎从来没有理由去做的事情,所以他们在你可以做之前添加了一个额外的步骤——您需要启用 SE_SYSTEMTIME 权限才能使用该权限。

如果您登录的帐户没有权限更改系统时间,您根本无法执行此操作。如果您登录的帐户可以更改它,则必须先启用该权限才能执行此操作。

底线:AdjustTokenPrivileges 不会完成您想要做的事情。

关于c++ - AdjustTokenPrivileges 能否提升管理员权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12019410/

相关文章:

c++ - 智能指针类的简单实现

c++ - 从路径中提取文件名

c++ - 如何在其中一个层次结构类中使用 std::is_base_of?

visual-studio-2010 - 你如何找到所有带有两个单独单词的文件?

visual-studio-2010 - 如何将项目 checkin 源代码管理但忽略敏感信息

c++ - std::stringstream 错误?

python - 在 Python 中抓取磁盘?

c# - 如何获得所有屏幕的 DPI 比例?

c++ - 静态库缺少 `__imp_` 符号

visual-studio-2010 - SlowCheetah 在构建后事件后执行