2008年11月19日

マニフェストのrequestExecutionLevelに指定できる値

Windows Vista上で管理者権限を要求するアプリケーションを作成するで説明したアプリケーションマニフェスト上のrequestExecutionLevelのlevel属性に指定できる値とその意味は以下のようになっています。
requireAdministrator
アプリケーションはAdministrator権限で開始されなければならず、それ以外の権限では実行されない。

highestAvailable
アプリケーションはログオンアカウントで要求できる最も高い権限で開始されなければならない。ログオンユーザがAdministratorアカウントならば権限昇格のプロンプトが表示されたうえでAdministrator権限で開始され、標準ユーザアカウントならば(権限昇格のプロンプトの表示なしに)標準の権限で開始される。

asInvoker
アプリケーションは呼び出し元のアプリケーションと同じ権限で開始される。

元ねたはAdvanced Windows 第5版 上 p.142

2008/11/20追記: ついでにGetProcessElevation関数(p.146)を移植してみようと思ったけど、Windows 2000ではGetTokenInformationにTokenElevationTypeを渡すとパラメータエラーになることが判明して断念。難しい…。

0 件のコメント: