我使用 Winrar SFX 功能创建了一个包含可执行文件的补丁文件。
执行 SFX 文件并解压完成后,我的可执行文件将永远无法运行,因为它没有管理员权限。我想知道如何通过某种编程方式(如批处理文件)授予管理员对该文件的访问权限。
我知道我可以右键单击它,转到“属性”,选择“兼容性”选项卡,然后勾选“以管理员身份执行”框。
问题是下载该补丁的用户不知道它(并且我的 exe 仅在您右键单击它并选择“以管理员身份打开”时运行,否则它永远不会打开也不会显示 UAC 弹出窗口)。
我尝试了一些方法,比如“Elevator Runner (Elevate me)”等,但我实际上正在寻找比这更简单的方法。
我只需要让 exe 始终以管理员身份运行。
答案1
你需要做的是嵌入一个应用程序清单进入 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 -manifest "App.exe.manifest" -outputresource:"App.exe";#1
如果没有错误,您就大功告成了。您可以删除清单文件并仅分发 EXE。运行它应该会让它每次都自动请求管理员访问权限。
答案2
创建档案时,请求管理权限。