7zip - самораспаковывающиеся исполняемые файлы требуют прав администратора и вызывают предупреждение о совместимости

5486
Mr. Boy

Когда я создаю самораспаковывающиеся архивные исполняемые файлы для Windows с помощью 7zip, .EXE запускает UAC в Windows7. И часто после распаковки я получаю это:

7zip - самораспаковывающиеся исполняемые файлы требуют прав администратора и вызывают предупреждение о совместимости

Я использую командную строку, как: 7z a -sfx7z.sfx dir\. Почему это происходит, и могу ли я их исправить?

7

2 ответа на вопрос

3
stderr

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=""/> </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
Отключение предупреждения не помогает, нельзя ожидать, что конечные пользователи изменят настройки своего компьютера. Я никогда не видел этого, когда _receiving_ самораспаковывающиеся архивы, это ошибка в 7zip? Также - есть идеи, зачем нужны права администратора? Папка, о которой идет речь, не является защищенной, как Program Files. Mr. Boy 10 лет назад 0
IExpress является отличной бесплатной (и полусекретной) функцией в Windows, но, к сожалению, не поддерживает каталоги только в виде плоской файловой структуры. Mr. Boy 10 лет назад 1
3
Alexey Ivanov

Ваш самораспаковывающийся архив, вероятно, содержит setupили installв своем имени файла. В этом случае Windows ожидает, что установит приложение.

Если Windows не обнаруживает «обычную активность установщика», она предполагает, что установка не удалась из-за отсутствия прав администратора. По этой причине он предлагает перезапустить установку с использованием рекомендуемых настроек с повышенными привилегиями.

Эта эвристика используется, когда исполняемый файл не имеет requestedExecutionLevelэлемента в своем манифесте.

Эти проблемы могли быть исправлены в более новой версии самораспаковывающегося модуля 7zip.