プログラムが管理者として実行するように設定されているかどうかを確認するにはどうすればいいですか?

プログラムが管理者として実行するように設定されているかどうかを確認するにはどうすればいいですか?

プログラムが管理者として実行されているかどうかを確認する方法や、Windows でプログラムを管理者として実行するように設定する方法を尋ねるスレッドがたくさんあるようですが、私の質問は、実際にプログラムを実行せずに、プログラムが管理者として実行するように設定されているかどうかを確認するにはどうすればよいかということです。これを自動的に確認できるようにする必要があります。

exe を右クリックして、プログラムが管理者として実行するように設定されているかどうかを確認できることはわかっていますが、実行中のアプリは特定の .exe が管理者として実行するように設定されているかどうかを認識し、そのプロパティに基づいて決定を下す必要があるため、それを自動的に確認する方法が必要です。

答え1

標準の Windows UI には、実行可能ファイルまたはショートカットが管理者として実行するように構成されているかどうかを確認する場所が 2 つあります。

ファイル/ショートカットのプロパティを開き、次に...

  1. のためにショートカット[詳細設定] ボタンをクリックし、[管理者として実行] フラグを確認します。
  2. 両方のための実行ファイルそしてショートカット互換性タブを開きます。

これら 2 つの場所の設定は同じ効果がありますが、同じではありません。

1 つ目はショートカットのプロパティであり、ショートカットにバインドされています。ネットワーク上のショートカットにプロパティを設定し、別のコンピューターでショートカットを実行することで、これをテストできます。ショートカットが実行される前に、昇格を求めるメッセージが表示されます。

2 番目 (互換性) は、設定されているコンピュータのレジストリに保存され、あるコンピュータで行われた設定は、これらの設定を伝播する他のメカニズムがなければ、別のコンピュータで自動的に表示されません。これらは、ユーザーごとまたはすべてのユーザーのアプリケーションのいずれかで、レジストリの 2 つの場所に保存されます。

すべてのユーザー:HKLM\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers

ユーザーごと:HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers

これらは、優先言語で利用可能な標準のレジストリ対応コンポーネントを使用して、プログラムおよびスクリプトで読み取ることができます。

関連情報