[英]Handling admin rights in mixed user/admin windows app
我的MFC應用程序通常以管理員權限運行,但是,有一項操作需要管理員權限(激活軟件時必須將狀態保存到HKLM)。
現在,我創建了兩個.exe文件:普通應用程序和“ Activation.exe”,它們必須以admin身份運行,並且在清單中具有requestExecutionLevel = requireAdministrator。 激活通過一個按鈕執行,該按鈕使ShellExecute(Activation.exe)生效。
但是,兩個應用程序共享很多代碼,因此我想將兩個exe合並為一個exe。 但是,我如何確保然后以管理員權限執行代碼的特定部分? 此方法應該/必須向下兼容NT4。
一種想法是使用開關(例如“ myapp.exe -activate”)將Activation.exe的功能集成到主exe中。 一個小的引導程序可確保它只能以admin身份運行(清單中的requireAdministrator),並且僅執行ShellExec(myapp.exe -activate)。 但這真的是最好的方法嗎?
我不知道這是否是最好的方法(沒有人回答),但是我現在這樣做了:)引導程序只是清單中的requireAdministrator,並通過開關“ / Activate”對ShellExecute進行了主執行...
我通常會使用帶有runas
動詞的ShellExecuteEx
調用來以管理員身份啟動任何可執行文件,即使它表現asInvoker
。
請注意,在已禁用UAC的系統上,生成的啟動可能不會獲得管理員特權; 我相信此警告也適用於啟動一個表現為requireAdministrator
的exe的方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.