【问题标题】:Handling admin rights in mixed user/admin windows app处理混合用户/管理员 Windows 应用程序中的管理员权限
【发布时间】:2013-07-04 12:38:26
【问题描述】:

我的 MFC 应用程序通常以管理员权限运行,但是,有一项操作需要管理员权限(激活必须将状态保存到 HKLM 的软件)。

现在,我创建了两个 .exe 文件:普通应用程序和“Activation.exe”,它必须以管理员身份运行,并且在 Manifest 中已请求ExecutionLevel=requireAdministrator。激活是通过一个使 ShellExecute(Activation.exe) 的按钮开始的。

但是,两个应用程序共享大量代码,因此我想将两个 exe 合并为一个 exe。但是我如何确保代码的特定部分以管理员权限执行?此方法应该/必须兼容到 NT4。

一个想法是使用开关将 Activation.exe 的功能集成到主 exe 中(例如“myapp.exe -activate”)。一个小的引导程序确保它只能以管理员身份运行(Manifest 中的 requireAdministrator),并且只执行 ShellExec(myapp.exe -activate)。但这真的是最好的方法吗?

【问题讨论】:

    标签: windows security mfc uac


    【解决方案1】:

    我不知道这是否是最好的方法(没有人回答),但我现在这样做了 :) 引导程序在 Manifest 中只需要 requireAdministrator 并使用 switch "/Activate" 对主要可执行文件执行 ShellExecute .. .

    【讨论】:

      【解决方案2】:

      我通常会使用带有动词runasShellExecuteEx 调用来以管理员身份启动任何可执行文件,即使它显示为asInvoker

      请注意,在已禁用 UAC 的系统上,由此产生的启动可能不会获得管理员权限;我相信这个警告也适用于启动 exe 的方法,表现为 requireAdministrator

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-07-20
        • 2014-12-13
        • 2011-07-10
        • 2013-12-13
        • 1970-01-01
        • 1970-01-01
        • 2013-08-01
        • 2021-07-27
        相关资源
        最近更新 更多