• ベストアンサー

管理者アカウントなのに管理者実行要求の意味

既に管理者アカウントでWindowsログインしているにも拘らず、「管理者権限で実行」を求められることがよくあります。 マイクロソフト社のコミュニティ過去問を参照すると、 「毎回承認しないといけないのは仕様通りであり、至って正常です。」 と回答されているのを見ました。 これでは何のための管理者権限アカウントなのか? ますます意味が判らなくなりました。 なぜWindowsのアプリ開発設計仕様書は、このように無意味な仕様に決まったのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • chie65535
  • ベストアンサー率43% (8523/19372)
回答No.6

>レジストリ変更を伴うアプリの他に、UACが自動で働くにはどんな重要変更要素がありますでしょうか? システムフォルダ内への書き込み、Program Filesフォルダへの書き込みなどがあります。 権限が必要なレジストリ変更は、レジストリ全部ではなく、システムレジストリなど、一部のレジストリだけです。 >またこの二重ダメ押し確認の機能は、アプリ設計者がUACを働かせるようにプログラミングしていなくてもOS側が自動検知するということは、起動前にEXEやDLLが重要システム変更をするかどうか、どのように判定できるようになっていますでしょうか? アプリがメモリにロードされ「プロセス」として起動されると、個々のプロセスは「アクセストークン」というデータを親プロセスから引き継ぎます。 このアクセストークンには「このプロセスで何が許されているか」が設定されています。 現在実行中のプロセスが、何らかの「権限」が無いと実行できないWindows APIを呼び出す場合は、このアクセストークンに「権限を付与」してから、APIを呼び出す事になります(権限が無いままAPIを呼ぶと、問答無用でエラーで戻って来るので、プロセスをエラーで終了させるしかなくなります) アクセストークンに必要な権限を付与する場合も、それを行うWindows APIを呼び出す事になります。 このAPIの呼び出しで、幾つかの動作に分かれます。 ・管理権限の無い一般ユーザーで実行していた場合 UACが呼び出される前に、API呼び出しが権限無しエラーで戻ります。結果、プロセスはエラーで終了します。 ・管理権限のある管理者ユーザーで実行していたが「管理者として実行」で実行していない場合 UACが呼び出され、ユーザーに確認を求めます。ユーザーが拒否するとAPI呼び出しがエラーで戻り、プロセスがエラーで終了します。ユーザーが許可するとAPIが実行され、アクセストークンに権限が付与され、実行が継続します。 ・管理権限のある管理者ユーザーで実行していて「管理者として実行」で実行していた場合 権限付与を行うAPIを呼ぶと、APIが実行され、アクセストークンに権限が付与され、実行が継続します。UACはユーザーに確認を求めずスルーします。 >セキュリティスキャン等が事前に完了しきれていない場合には、悪意の変更がなされるソフトでもダメ押しUACが働かず即座に動作してしまうものでしょうか? 上記の3つ目の「管理権限のある管理者ユーザーで実行していて「管理者として実行」で実行していた場合」に相当するので、UACはスルーされ、悪意あるプロセスは権限を獲得し動作を継続してしまうでしょう。

altosax
質問者

お礼

大変勉強になりました! EXE実行に先立ちアクセストークンのチェックをする、というOS仕様が、UACの基本理念ということだったのですね! 本当にありがとうございました。

Powered by GRATICA

その他の回答 (5)

  • luka3
  • ベストアンサー率74% (299/401)
回答No.5

管理者アカウントと言えども、常に管理者モードになっている訳ではなく、 普段はユーザーモードで動いていて、ユーザーアカウントとの違いは 管理者にしか見れないフォルダを開ける程度です。 WindowsXPまでは管理者アカウントであれば常に管理者モードで動いてましたが、 これだとあらゆる処理が実行可能となり、 うっかりウイルスを開いたときに簡単にシステムを乗っ取られる事態が多発しました。 この反省から、システムエリア内のファイルの書き込みや削除、 レジストリ(システム設定が詰まった一種のデータベース)を変更しようとする プログラムの実行など、システムの変更に関わることは、 明示的に「ココから管理者モードになって変更しますよ」という意味で 「管理者実行要求」をするようになった、ということだと思います。 管理者アカウントは「常に管理者モードで動くユーザー」ではなく、 「管理者モードになってシステム変更する権利を持ったユーザー」 ということになります。

altosax
質問者

お礼

なるほど、XP時代の反省なのですね! あの頃の悲劇を思い出すと、非常に納得できました。 どうも有難う御座います。

Powered by GRATICA
  • dell_OK
  • ベストアンサー率13% (740/5645)
回答No.4

そうですよね。 私も同じように思っていました。 でも、考え方を変えました。 「管理者として実行する」管理者とは、コンピューター内をどうのこうのする管理者ではなく、コンピューターそのものとそれに関連するものをどうのこうのする管理者という風に。 これを実行する者はその影響でコンピューターがどうかなってしまっても責任を負う、ということです。 簡単に言うと、壊れてもいい、という覚悟ですね。 データがどこかに流れてしまったらその責任も負うってことです。 管理者実行要求は、その覚悟を問われているのであって、実行した人間に責任を負わせる、おどしのメッセージだと思うことにしています。

altosax
質問者

お礼

なるほど、駄目押しをしてくれる親切機能への仕様変更だったのですね。 自分は管理者だから何が起きても自己責任、と割り切れない儘に管理者アカウントを使う人が続出した訳ですね。

Powered by GRATICA
  • kteds
  • ベストアンサー率42% (1876/4424)
回答No.3

> これでは何のための管理者権限アカウントなのか? ログインしている権限は「管理者権限アカウント」ではなくて、 「管理者アカウント」権限です。 管理者アカウントでWindowsログインしていても万能ではありません。 システムに変更を行なうような重要な処理は「管理者アカウント」を「管理者権限に昇格させて実行」する必要があります。 > なぜWindowsのアプリ開発設計仕様書は、このように無意味な仕様に決まったのでしょうか? 「無意味」ではなくて「極めて重要な意味がある」からです。

altosax
質問者

お礼

有難う御座います。 NTFSになったばかりの頃、NTと2000は業務用で管理者の概念が皆解っていたからこそ、今でいうザルな全権でも問題にならなかった訳ですね。 とても良く判りました。

Powered by GRATICA
  • chie65535
  • ベストアンサー率43% (8523/19372)
回答No.2

管理者アカウントは「管理者じゃないと実行できないプログラムを実行できるアカウント」です。言い換えれば、パソコン上のすべてのファイルやアプリにアクセスする事が許されています。 しかし、管理者アカウントでアプリを普通にクリックして実行しても、起動したアプリに管理者権限は付与されません。安全のため、一般ユーザーが起動したのと同じ状態で起動されます。 もし、起動したアプリが「悪意ある物」だった場合、権限がフルに与えられて実行されてしまうと、悪意あるアプリ作成者に、パソコン内のファイルすべてにアクセスされ、個人情報が抜き取られてどこかに送信されたり、クレジットカード情報と暗証番号が抜き取られて悪用されてしまいます。 ですので、例え管理者アカウントで実行するとしても、単純なダブルクリックでの起動は「安全な、一般の、低い権限でのみ実行する」ようになっているのです。 で、本当に管理者権限を与えて「何でも出来てしまう状態で実行する」時は、ワザと「管理者権限で実行」を選ばないといけない仕様にしているのです。 なので「管理者権限で実行」と指示されていても、安易に管理者権限で実行せず、実行したいプログラムをセキュリティソフトでスキャンするなど「安全なのを確実に確認」した上で「管理者権限で実行」して下さい。

altosax
質問者

補足

大変ためになりました。 レジストリ変更を伴うアプリの他に、UACが自動で働くにはどんな重要変更要素がありますでしょうか? またこの二重ダメ押し確認の機能は、アプリ設計者がUACを働かせるようにプログラミングしていなくてもOS側が自動検知するということは、起動前にEXEやDLLが重要システム変更をするかどうか、どのように判定できるようになっていますでしょうか? セキュリティスキャン等が事前に完了しきれていない場合には、悪意の変更がなされるソフトでもダメ押しUACが働かず即座に動作してしまうものでしょうか?

  • 121CCagent
  • ベストアンサー率51% (14191/27663)
回答No.1

Windowsの「権限:管理者」について cloud-sup.cybersolutions.co.jp/hc/ja/articles/900004179986 みたいなのを参考にして見るとか…

altosax
質問者

お礼

どうも有難う御座います。 参考にさせていただきますね。

Powered by GRATICA

関連するQ&A

  • 管理者権限の有るアカウント

    過去の質問を参考に色々と試してはみたものの解決しませんでした。 すみませんが皆様よろしくお願いします。 JAVAをダウンロードしたいのですが、管理者権限の有るアカウントで ログインして下さいと出ますが、管理者権限の有るアカウントが分かりません(泣) どうすればよろしいのかご教授をお願いします。 OS→Windows2000  

  • 管理者権限のあるアカウントでログインするには?

    Windouws Vista Home Premiumを使っている者です。 タイトルの通り、管理者権限のあるアカウントでログインするにはどうすればいいか教えてください。 また、管理者(ユーザー)のアカウントと管理者権限のあるアカウントの相違点も教えてください。

  • Windows7 管理者アカウント表示させない

    お世話になります。 Windows7を使用しています。 会社の情シス担当をしていますが、ユーザーPCには管理者用のアカウントは作成しておらず、ユーザーが使用するアカウントのみ作成しています(管理者権限) パスワードは私が設定していますが、ユーザー側で変更されるとログインする際に困ります。 そこで今さらですがユーザーPCに管理者アカウント(Administrator)を作成しましたが、 ログイン画面にユーザーアカウントと管理者アカウントの両方表示されてしまいます。 ログイン画面ではユーザーアカウントのみ表示させることは出来ませんでしょうか? ちなみにWindowsXPではログイン画面でアカウント変更出来ましたがWindows7では 出来ないのでしょうか? どなたかご教授いただけますでhそうか。 よろしくお願い致します。

  • 管理者が要求されるのですが…

    Windows8.1を新規SSDでインストール、途中でMSアカウントを取得、その後、いろいろとソフトをインストールしました。 以前のHDDのデータを編集上書きをしようとしたところ「管理者権限がない…」ということで編集ができません。 新規のデータは作成・変更も可能です。 メモ帳を利用し確認しました。 アカウントは一つだけです… MSアカウントでログインしているのですが…管理者じゃないってことなのでしょうか? ローカルアカウントを追加しても管理者指定はできると思いますが… ここで表示される「管理者権限がない…」「アクセスが拒否されました」は、どう対処すればいいのでしょうか。 どうすれば、編集できるようになるのでしょうか…? メモ帳を「右クリック」して、管理者として起動して、その中に旧テキストファイルをつまんで移動したのですが、表示されませんでした。

  • 7で管理者権限のアカウントでログインできない

    よろしくお願いします。 Windows7で管理者権限を与えているアカウントが1つしか作ってないのにそれでログインできなくなってしまいました。 今は一般ユーザーアカウントのみ有効なためインストール等ができません。 いろいろこちらで調べ試してみたのですがAdoministratorアカウントを有効にしていないため途中で進む事ができなくなります。 7ではAdoministratorを有効にしていないとレジストリのバックアップファイル等から管理者のファイルを絶対に復元できないのでしょうか? 以上このようなトラブルで困っています。よろしくお願いします。

  • アカウントが管理者でなくなってしまいました。

    Windows vista homepremiumですがアカウントが管理者から標準ユーザーになってしまい困っています。(パスワードは覚えているのでログインは出来ます。)他のアカウントの登録をしていないため何とか今のアカウントを管理者にする方法がありましたらお教え下さい。よろしくお願いします。

  • ゲストアカウントの管理者権限の解除法

    windows8(8.1)でゲストアカウントに管理者権限を与えてしまって、別アカウントのアカウント名等を変更しようとしても変更出来ません。 別アカウントにはパスワード設定でログインし、ゲストアカウントにはログインパスワードを設定していないので、ログインでは支障なく思えるのですが…今後、支障が出る事を考えれば、管理者権限の変更をしたいです。分かる方、教えて下さい!

  • 管理者アカウントが行方不明

    初めて質問させて頂きます。 先日家族と共有していたPCが自分専用になりアカウントの整理をしていたのですが管理者の移行をしていたらフリーズしてしまい不十分な状態で再起動されてしまいました。 上記の事象により 1既存のユーザーが標準ユーザーになり尚且つ管理権限を持たない 2管理権限を持つユーザーアカウントがログイン画面に表示されない 上記の2つが重なり管理権限系の作業が一切できない状態です コマンドプロンプトによる無効化もできずセーフモードでの起動も標準ユーザーしか表示されず困り果てています なにか修復する方法もしくは管理権限をもつアカウントでのログインができる方法はないでしょうか? OSはvistaのHOMEpremiumです 回答よろしくお願いいたします

  • 管理者権限を持つ全てのアカウントを有効にする方法

    Windows7 Professionalで管理者権限を持つアカウントが、 ビルトインAdministratorを含め2つあったのですが、 2つとも「アカウントを無効にする」に設定してしまい、 管理者権限を持つアカウントで一切ログオンできなくなってしまいました。。 復旧方法、または管理者権限を持つアカウントの新規作成方法を教えてください。 ユーザーアカウントがありますが管理者権限が無いので、アカウントの新規作成もできませんし、 管理者権限を持つアカウントに対して「アカウントを有効にする」こともできません。。 やはり、OS再インストール or バックアップ復旧しか手が無いでしょうか?

  • 管理者権限のあるアカウントでパスワード設定できない

    XPProにて自分の名字で管理者権限のあるアカウントを一つだけ設定している(ゲストアカウントはオフの状態)のですがパスワードを作成しようにも”作成できません”という旨のメッセージが表示されます。ちなみにその後一旦ログオフしてユーザー名をAdministratorとしてログインしましたら前述のアカウントのパスワードを設定することが出来ました。管理者権限のあるアカウントでログインしているのにパスワード設定できないのは何故でしょうか?(XPProがインストールしてある他のPCで試してみたら管理者権限のあるアカウントでログインしている状態ですんなりパスワード設定ができました)また、パスワード設定を出来るようにするにはどうしたら良いでしょうか?ご存知の方いれば宜しくお願いいたします。