我使用 Winrar SFX 功能建立了一個修補程式文件,其中包含可執行檔。
執行 SFX 檔案並提取結束後,我的可執行檔將永遠不會運行,因為它沒有管理員權限。我想知道如何透過某種程式設計方式(如批次檔)授予管理員對該檔案的存取權限。
我知道我可以右鍵單擊它,轉到“屬性”,選擇“相容性”選項卡,然後勾選“以管理員身份執行”框。
問題是下載該補丁的用戶不知道它(並且我的exe僅在您右鍵單擊它並選擇“以管理員身份打開”時運行,否則它將永遠不會打開也不會顯示UAC彈出視窗)。
我嘗試過一些方法,例如“電梯跑步者(提升我)”等,但我實際上正在尋找比這更簡單的方法。
我只需要讓exe始終以管理員身份運行即可。
答案1
你需要做的是嵌入一個應用清單進入EXE。
將以下內容儲存為名為的文字文件應用程式.exe清單:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> <security> <requestedPrivileges> <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/> </requestedPrivileges> </security> </trustInfo> </assembly>
下載 Windows SDK。
在裡面你會發現mt.exe即清單工具。如下調用它:
mt.exe -manifest "App.exe.manifest" -outputresource:"App.exe";#1
如果沒有錯誤,你就完成了。您可以刪除清單檔案並僅分發 EXE。運行它應該讓它每次都會自動請求管理員存取權限。
答案2
建立檔案時,請求管理存取權限。