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


7

当我使用7zip为Windows创建自解压存档可执行文件时,.EXE会在Windows7上触发UAC。解压后经常会这样:

在此输入图像描述

我正在使用命令行:7z a -sfx7z.sfx dir\。为什么会发生这些事情,我能解决它们吗?

Answers:


3

您可能希望禁用此警告,如果是,请按照以下步骤操作。

  1. 打开服务管理器(按 + R,键入services.msc并按下Enter)。
  2. Program Compatibility Assistance Service在列表中搜索。
  3. 右键单击此服务并选择Stop
  4. 现在再次右键单击Program Compatibility Assistance Service并选择Properties
  5. GeneralStartup 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)来执行此操作。你会使用类似的命令:

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

其他考虑因素

  • 7z SFX-Creator根据此页面,考虑使用此程序():创建的自解压存档将不再导致警报PCA
  • 看看IExpress是否对您有用 在此输入图像描述

禁用警告没有帮助,不能期望最终用户修改他们的计算机设置。我在接收自解压档案时从未见过这个,这是7zip中的一个错误吗?此外 - 任何想法为什么它需要管理员权限?有问题的文件夹不像Program Files那样受保护。
男孩先生2014年

1
IExpress是Windows中一个很好的免费(和半秘密)功能,但遗憾的是它不支持只有平面文件结构的目录。
男孩先生2014年

3

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

如果Windows未检测到“常用安装程序活动”,则会假定安装失败,因为缺少管理员权限。这就是为什么它提示使用推荐的设置重新运行安装,并提升权限。

在可执行文件requestedExecutionLevel的清单中没有元素的情况下使用此启发式方法。

这个问题可以在较新版本的7zip自解压模块中修复。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.