如何配置我的应用程序以自动以管理员身份运行?

Raf*_*dal 9 windows-7 privileges uac administrator runas

我使用 Winrar SFX 功能创建了一个补丁文件,其中包含一个可执行文件。
执行 SFX 文件并提取结束后,我的可执行文件将永远不会运行,因为它没有管理员权限。我想知道如何通过某种编程方式(如批处理文件)授予管理员访问该文件的权限。

我知道我可以右键单击它,转到“属性”,选择“兼容性”选项卡,然后勾选“以管理员身份执行”框。

问题是下载该补丁的用户不知道它(我的 exe 仅在您右键单击它并选择“以管理员身份打开”时才会运行,否则它将永远不会打开或显示 UAC 弹出窗口)。

我尝试过一些方法,比如“Elevator Runner(提升我)”等,但我实际上正在寻找比它更简单的东西。
我只需要让 exe 始终以管理员身份运行。

Kar*_*ran 15

您需要做的是将应用程序清单嵌入到 EXE 中。

  1. 将以下内容另存为名为App.exe.manifest的文本文件:

    <?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>
    
    Run Code Online (Sandbox Code Playgroud)
  2. 下载 Windows SDK。

  3. 在里面你会发现mt.exeManifest Tool。调用它如下:

    mt.exe -manifest "App.exe.manifest" -outputresource:"App.exe";#1
    
    Run Code Online (Sandbox Code Playgroud)
  4. 如果没有错误,您就完成了。您可以删除清单文件并仅分发 EXE。运行它应该让它每次都自动请求管理员访问。

来源