web-dev-qa-db-ja.com

7Zip-自己解凍型の実行可能ファイルには管理者権限が必要であり、互換性の警告をトリガーします

7Zipを使用してWindows用の自己解凍型アーカイブ実行可能ファイルを作成すると、.EXEがWindows7でUACをトリガーします。そして、頻繁に解凍した後、私はこれを取得します:

enter image description here

私は次のようなコマンドラインを使用しています:7z a -sfx7z.sfx dir\。なぜこれらのことが起こっているのですか?私はそれらを修正できますか?

8
Mr. Boy

この警告を無効にすることもできます。無効にする場合は、以下の手順に従ってください。

  1. Service Managerを開きます(を押します + Rservices.mscと入力して、 Enter)。
  2. リストでProgram Compatibility Assistance Serviceを検索します。
  3. このサービスを右クリックして、Stopを選択します。
  4. ここでもう一度Program Compatibility Assistance Serviceを右クリックし、Propertiesを選択します。
  5. Startup typeセクションのGeneralタブで、ドロップダウンメニューをクリックし、Disabledを選択します。 。
  6. ApplyをクリックしてからOKをクリックします。

注:プログラム互換性アシスタンスは、既知の互換性の問題についてプログラムを監視し、エンドユーザーにとって非常に有益な場合があります。このヒントはパワーユーザーを対象としています。


もう1つの 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 を実行可能ファイルに埋め込む方法は?

これを行うには、Microsoftのこのユーティリティ( mt.exe -sdkがインストールされていると仮定)を使用できます。次のような同様のコマンドを使用します。

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

その他の考慮事項

  • このページによると、このプログラム( 7z SFX-Creator )の使用を検討してください:作成された自己解凍アーカイブはアラートPCAを引き起こしなくなりました。
  • IExpress があなたに役立つかどうかを確認してください enter image description here
3
stderr

自己解凍型アーカイブには、ファイル名にsetupまたはinstallが含まれている可能性があります。この場合、Windowsはアプリケーションをインストールすることを想定しています。

Windowsが「通常のインストーラーアクティビティ」を検出しない場合、管理者権限がないためにインストールが失敗したと見なされます。これが、昇格された特権でインストールの再実行を求めるプロンプトが表示される理由です推奨設定を使用

このヒューリスティックは、実行可能ファイルのマニフェストに requestedExecutionLevel 要素がない場合に使用されます。

この問題は、7Zip自己解凍モジュールの新しいバージョンで修正された可能性があります。

3
Alexey Ivanov