AdjustTokenPrivileges可以以管理员身份提升权限吗?

0 c++ windows mfc visual-studio-2010 visual-c++

Windows下的程序需要管理员权限才能在用户启动时获得用户的权限.并且他们也可以通过右键单击EXE并选择"以管理员身份运行"来管理员权限运行.但是,在EXE开始之前,会出现一个消息框.这真的很恶心.

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

现在我想知道AdjustTokenPrivileges函数是否可以帮助我实现这一目标.

任何人都可以帮助我吗?

Jer*_*fin 8

你在权利和特权之间感到困惑.至少从Windows API的角度来看,两者完全不同(尽管它们在很多时候都被视为同义词,至少在处理"你可以在Windows上做什么"时).

你真正想要的是提升权利的能力.缺少系统安全模型中的一些缺陷,您应该无法做到这一点.要获得管理权限,目的是代码必须在管理帐户下运行 - 最初由用户以管理员身份登录,或者由他们在运行时输入凭据(如您所见).

权限(AdjustTokenPrivileges实际操作的权限)是您有权做的事情,但如果没有专门启用该权限,仍然不允许这样做.例如,假设您开始以管理员身份登录.这使你有权调整系统时钟 - 但调整系统时钟是正常程序几乎从来没有理由做的事情,所以他们在你做之前增加了一个额外的步骤 - 你需要先启用SE_SYSTEMTIME权限你可以利用这个权利.

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

底线:AdjustTokenPrivileges不会完成你想要做的事情.