トップ回答者
Windows8 UAC無効時の昇格判定について

質問
-
OS: Windows8 RP または RTM
管理者権限で実行されているか(シールドアイコンを表示する必要があるか)を、IsAdminProcess()を使用して調べています。
Windows7では、UACを無効にしている時にIsAdminProcess()が true を返してくれるのですが、
Windows8では、UACを無効にしている時にIsAdminProcess()が false を返してきます。
念のためCheckTokenMembership()関数を使って調べる方法も試してみましたが、結果は同じでした。
Windows8にて、UACが無効であること(管理者権限昇格の必要が無いこと)を検知する方法について
何か情報をお持ちの方がおりましたら、ご教示いただけると幸いです。
回答
-
問題点とは関係ない話ですが、UX デザインコンセプトに
UAC が部分的に有効になっている場合、または完全に無効になっている場合、昇格 UI が表示されなく ても、タスクがシステム レベルの変更を伴うものであり、昇格が必要であることを示すために、 UAC シールドは表示されます。昇格が必要なタスクに対して常に UAC シールドを表示することによって、 UI を常にシンプルで予測可能な状態にできます。
とありますので、シールドアイコンを非表示にしちゃダメなんではないでしょうか。
-
コントロールパネルではなく、レジストリから設定しないといけないのかな?
Disable UAC completely
http://www.eightforums.com/general-discussion/2434-disable-uac-completely.htmlレジストリから変更した場合、普通にプロセスを起動するだけで管理者特権を行使できることを手元で確認しています。
逆に、コントロールパネルでトラックバーを一番下に下げる程度では、通知・確認がなくなるだけで、管理者特権になっていません。本当に、UAC を無効化できているかどうか、一度確認してみてください。
C:\ ルートフォルダーでファイルを作るとか、whoami /groups で Administrators が有効と表示されるかとか。- 回答としてマーク Wtr_0610 2012年8月21日 2:00
すべての返信
-
問題点とは関係ない話ですが、UX デザインコンセプトに
UAC が部分的に有効になっている場合、または完全に無効になっている場合、昇格 UI が表示されなく ても、タスクがシステム レベルの変更を伴うものであり、昇格が必要であることを示すために、 UAC シールドは表示されます。昇格が必要なタスクに対して常に UAC シールドを表示することによって、 UI を常にシンプルで予測可能な状態にできます。
とありますので、シールドアイコンを非表示にしちゃダメなんではないでしょうか。
-
Win8 の評価や確認を行う時間も環境もないのですが、たとえば
http://code.msdn.microsoft.com/windowsdesktop/CSUACSelfElevation-644673d3
このあたりのサンプルを実行しても、正常に検出できていない状況でしょうか?
( Win8 環境で、UAC は無効にしているがログインしているのが管理者ではない、なんてこともないですよね)
- 編集済み K. Takaoka 2012年8月20日 5:02
-
UAC 無効化ってどのように設定されました?
手元の環境では、ユーザーアカウントの制御の設定の変更で一番下にしても、完全に無効になっていないように見受けられました。
コマンドプロンプトをそのまま実行することと、管理者として実行することで挙動の差があったことからです。
(echo > C:\test.txt でファイルが作成できるか、whoami /groups で出力に差があるか)私の再現方法が悪いのかなぁ…。
- 編集済み AzuleanMVP, Moderator 2012年8月20日 14:19
-
コントロールパネルではなく、レジストリから設定しないといけないのかな?
Disable UAC completely
http://www.eightforums.com/general-discussion/2434-disable-uac-completely.htmlレジストリから変更した場合、普通にプロセスを起動するだけで管理者特権を行使できることを手元で確認しています。
逆に、コントロールパネルでトラックバーを一番下に下げる程度では、通知・確認がなくなるだけで、管理者特権になっていません。本当に、UAC を無効化できているかどうか、一度確認してみてください。
C:\ ルートフォルダーでファイルを作るとか、whoami /groups で Administrators が有効と表示されるかとか。- 回答としてマーク Wtr_0610 2012年8月21日 2:00