web-dev-qa-db-ja.com

アプリケーションを管理者として自動的に実行するように構成するにはどうすればよいですか?

Winrar SFX機能を使用して、内部に実行可能ファイルを含むパッチファイルを作成しました。
SFXファイルを実行して解凍すると、管理者権限がないため実行ファイルが実行されません。なんらかのプログラミング方法(バッチファイルなど)によってそのファイルへの管理者アクセス権をどのように付与できるのかと思います。

右クリックして[プロパティ]に移動し、[互換性]タブを選択して、[管理者として実行]チェックボックスをオンにできることを知っています。

問題は、そのパッチをダウンロードするユーザーが知らないことです(そして、私のexeは、右クリックして[管理者として開く]を選択した場合にのみ実行されます。そうしないと、UACポップアップを開いたり表示したりしません)。

「エレベーターランナー(Elevate me)」など、いくつかの方法を試しましたが、実際にはもっと簡単なものを探しています。
exeを常に管理者として実行する必要があるだけです。

9
Rafael Vidal

あなたがする必要があるのは アプリケーションマニフェスト をEXEに埋め込むことです。

  1. 以下をApp.exe.manifestというテキストファイルとして保存します。

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <Assembly xmlns="urn:schemas-Microsoft-com:asm.v1" manifestVersion="1.0">
        <trustInfo xmlns="urn:schemas-Microsoft-com:asm.v3">
            <security>
                <requestedPrivileges>
                    <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
                </requestedPrivileges>
            </security>
        </trustInfo>
    </Assembly>
    
  2. Windows SDKをダウンロードします。

  3. 内部にはmt.exe、つまりManifest Toolがあります。次のように呼び出します。

    mt.exe -manifest "App.exe.manifest" -outputresource:"App.exe";#1
    
  4. エラーがなければ完了です。マニフェストファイルを削除して、EXEのみを配布できます。実行すると、毎回自動的に管理者アクセスをリクエストするようになります。

ソース

15
Karan

アーカイブを作成するときは、Request Administrative Accessです。enter image description here

2
MDMoore313