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


8

Winrar SFX機能を使用して、実行可能ファイルを含むパッチファイルを作成しました。
SFXファイルを実行して抽出が終了した後、実行可能ファイルには管理者特権がないため実行できません。何らかのプログラミング方法(バッチファイルなど)でそのファイルへの管理者アクセスを許可する方法を疑問に思います。

右クリックして「プロパティ」に移動し、「互換性」タブを選択して、「管理者として実行」ボックスにチェックマークを付けることができます。

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

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


2
modへの注意:SOへの移行はここでは不要です。
カラン

回答:


14

必要なのは、アプリケーションマニフェストを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、つまりマニフェストツールがあります。次のように呼び出します。

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

ソース


テストします。ところで、この「マニフェスト」をもう少し良くすることは可能ですか?管理者アクセスを要求せずに管理者として実行するのが好きですか?ありがとう
ラファエルヴィダル

静かに昇格して管理者アクセスを取得したいという意味ですか?不可能なUACをオフにしない限り、UACのポイントは何でしょうか。すべてのマルウェアがこれを行うとは思わないでしょうか。
カラン

私はあなたのポイントを理解していますが、確かに簡単ではない方法がありますが、「Elevate Me」プログラムのように...とにかく、管理者としてexeを実行するだけで十分です。事前に感謝します
ラファエルヴィダル

1
昇格プロンプトをバイパスするこのようなプログラムはすべて、管理者アクセスを必要とするよく知られているタスクスケジューラトリックを使用します。SFXが実行される任意のPCでこれを実行しようとしているため、標準ユーザーの同意なしにサイレントでスケジュールされたタスクを作成することはできません。実際、PCでプログラムがこれを行った場合(UACをバイパスするスケジュールタスクをサイレントに作成します)、私は即座にマルウェアとして分類して削除します。
カラン

かなり良いカラン、完璧に働いた。私はそれ以外の場合は動作しません...ありがとうもう一度、あなたは答えにADMINとしてCMDを実行する必要性を追加することをお勧め
ラファエル・ヴィダル

2

アーカイブを作成するときに、管理アクセスをリクエストします。ここに画像の説明を入力してください


MDMoore313お時間をいただきありがとうございますが、私は自分自身をうまく説明しなかったと思います。SFXを管理者として実行する必要はありません。SFXファイル内にある特定のファイルをadmin( "my_app.exe")として実行する必要があります。ポイントは、そのファイルをダブルクリックしても実行されないことです。それを実行する唯一の方法は、それを右クリックして「管理者として実行」を選択することです
ラファエルヴィダル

@RafaelVidalは、SFXがアプリケーションを起動しますか?その場合、アプリには管理者権限が付与されます。そうでない場合は、回答を更新します。
MDMoore313

いいえ、アプリケーションは起動しません。ユーザーが手動で行う必要がありますので、彼は、「互換性」タブの「ファイル名を指定して実行Adminsitratorとして」ボックスをチェックするか、コンテキストメニューの「管理者として実行」を右クリックして
ラファエル・ビダル

@RafaelVidalは、WinRARにexeを起動させたくない理由があり、ユーザーにSFX自体を実行させるだけですか?それは同じ目標を達成し、管理者の問題を解決するようです。それでもプログラムを管理者として実行するようにフラグを立てることに注力している場合は、スタックオーバーフローに関する回答が得られる可能性が高くなります(移行の質問にフラグを立てる)
MDMoore313

SFXはファイルを起動しますが、ユーザーは後でそのファイルを自分で実行できます。その場合、実行するSFXはありません。そのため、exeに「管理者として実行」というフラグを設定する必要があります
ラファエルVidal
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.