簡體   English   中英

在混合用戶/管理員Windows應用程序中處理管理員權限

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM