7zip - 自解压可执行文件需要管理员权限并触发兼容性警告

7zip - 自解压可执行文件需要管理员权限并触发兼容性警告

当我使用 7zip 创建适用于 Windows 的自解压存档可执行文件时,.EXE 会在 Windows7 上触发 UAC。解压后,我经常收到以下信息:

在此处输入图片描述

我正在使用类似这样的命令行:7z a -sfx7z.sfx dir\。为什么会发生这些事情?我能修复它们吗?

答案1

您可能想要禁用此警告,如果是这样,请按照以下步骤操作。

  1. 打开服务管理器(按 + R,输入services.msc并点击Enter)。
  2. Program Compatibility Assistance Service在列表中搜索。
  3. 右键单击此服务并选择Stop
  4. 现在再次右键单击Program Compatibility Assistance Service并选择Properties
  5. General在该部分的选项卡下Startup type,点击下拉菜单并选择Disabled
  6. Apply然后点击OK

注意:程序兼容性帮助会监控程序中已知的兼容性问题,这对最终用户非常有帮助。此提示针对高级用户。


其他probable solution嵌入清单文件以避免出现此警报。如下所示:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
  <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 
    <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> 
      <application> 
        <!--The ID below indicates application support for Windows 7 --> 
          <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/> 
      </application> 
    </compatibility>
  </assembly>

如何嵌入application manifest进入我的可执行文件?

您可以使用此实用程序(mt.exe- 假设您已安装 sdk)来自 Microsoft 来执行此操作。您可以使用类似这样的命令:

mt.exe  -manifest "foo.manifest" -outputresource:"foo.exe";#1

其他考虑因素

  • 考虑使用这个程序(7z SFX-Creator),根据此页面:创建的自解压档案将不再引起 PCA 警报
  • 看看速递可能对你有用 在此处输入图片描述

答案2

您的自解压存档可能在文件名中包含setup或。在这种情况下,Windows 期望它安装一个应用程序。install

如果 Windows 没有检测到“正常的安装程序活动”,它会认为安装失败是因为缺少管理员权限。这就是它提示重新运行安装的原因使用推荐的设置,具有提升的权限。

这种启发式方法用于可执行文件没有requestedExecutionLevel其清单中的元素。

该问题可能已在较新版本的 7zip 自解压模块中得到修复。

相关内容