本日、Windows 7のRC版が公開されました。β版が一般公開されたときもそうでしたが、UAC(ユーザー アカウント制御)に対して、ユーザー操作が簡易になる方向に新しい設定が加わり、しかもそれがデフォルト設定になったということで話題を集めておりました。今回は新しい設定について、レジストリ変更を観点にするとどのような変更が加わったのか、見ていきたいと思います。
※Windows 7 [x86] RC版(6.1.7100)をVirtual PCに入れて確認
まず、UACの設定ダイアログが、次のように拡張されています。
これが新しい設定であり、Windows 7からのデフォルトになっている設定です。動作としては、次のようになります。
従来のUACでは、上記 1 も権限昇格を確認するダイアログが出ていましたが、それが出なくなったというわけです。この部分が、緩和された部分ということになるかと思います。
ちなみに、「権限昇格を確認するダイアログ」ですが、管理者ユーザーで使用している場合はただの確認ダイアログですが、一般ユーザーで使用している場合はパスワードの入力を求められます。
さて、レジストリ設定では、どのようになっているでしょうか? UACの設定情報が格納されたレジストリキー(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System)を覗いてみました。
UAC自体のON/OFFを示すEnableLUAはONになっていますが、その動作を示すConsentPromptBehaviorAdminは、これまでにはない「5」が設定されています。ちなみに、Windows Vistaまでは、ここの設定値は次のような意味を持っていました。
3と4がどんな意味を持つのかは不明ですが、とりあえず 5 が新設されたんだということがわかったかと思います。
さて、他の設定ではどうなるでしょうか? 試してみました。
■一番上(従来のデフォルト)
▲Windows Vistaでのデフォルト設定がこちらになります。レジストリ状態も、従来のWindows Vistaと同じになります。
■3番目(これも新設オプション)
▲こちらも新設オプションとなります。ConsentPromptBehaviorAdminは5となっていますが、「保護デスクトップ」へ入るための設定値 PromptOnSecureDesktop が 0 になっています。「保護デスクトップ」とは、背景がうっすらと暗くなる状態のことで、この状態は背後で動く全プログラムが停止し、画面のスクリーンショットも撮れない状態のことです。
この設定は、それをOFFにするということですね。
■4番目(OFF)
▲ConsentPromptBehaviorAdmin が 0 になると同時に、EnableLUA も 0 になっています。同意要求がなくなるだけでなく、UAC自体もOFFになっているということですね。
ちなみにWindows Vistaでは、UACのON/OFFを変更するとコンピュータの再起動を要求されたのですが、Windows 7では要求されなくなっていました。
ただし、レジストリ エディタから変更しただけでは有効にならないことも確認しておりますので、何らかの方法でシステム全体に変更通知を出す方法があるということなのかもしれません。
一般ユーザーについては、ConsentPromptBehaviorAdmin ではなく ConsentPromptBehaviorUser が適用されるわけですが、この値のデフォルトは「3」となっておりました。どうやら、こちらでは「3」がConsentPromptBehaviorAdminにおける「5」と同じような意味(*)を持っているようです。
(*) …… ConsentPromptBehaviorAdminにおける「5」は、昇格が必要な場合でもパスワード要求はありませんが、ConsentPromptBehaviorUser における「3」は昇格が必要な場合にパスワード要求があります。