7zip - self-extracting executables require admin privileges and trigger compatibility warning

When I create self-extracting archive executables for Windows with 7zip, the .EXEs trigger UAC on Windows7. And frequently after unzipping, I get this:

enter image description here

I'm using commandline like: 7z a -sfx7z.sfx dir\. Why are these things happening and can I fix them?


Solution 1:

You may want to disable this warning, if so, follow the steps below.

  1. Open Service Manager(press + R, type services.msc and hit Enter).
  2. Search for Program Compatibility Assistance Service in the list.
  3. Right click on this service and select Stop.
  4. Now again right click on Program Compatibility Assistance Service and select Properties.
  5. Under General tab in the Startup type section, click on the drop-down menu and select Disabled.
  6. Click on Apply then OK.

Note: Program Compatibility Assistance monitors programs for known compatibility issues and can be very beneficial for end users. This tip is aimed at power users.


Another probable solution is to embed a manifest file to avoid this alert. Something like this:

<?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>

How to embed the application manifest into my executable?

You can use this utility(mt.exe - assuming you have the sdk installed) from Microsoft to do this. You would use a similar command like this:

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

Other Considerations

  • Consider using this program(7z SFX-Creator), according to this page: self-extracting archives created will no longer cause alert PCA.
  • See if IExpress may be useful to you enter image description here

Solution 2:

Your self-extracting archive likely contains setup or install in its file name. In this case, Windows expects it installs an application.

If Windows does not detect “usual installer activity”, it assumes the installation failed because of missing administrator privileges. That's the reason why it prompts to re-run installation using recommended settings, with elevated privileges.

This heuristic is used where the executable does not have requestedExecutionLevel element in its manifest.

This issues could have been fixed in a newer version of 7zip self-extracting module.