【Windows】 管理者なのにファイルを変更できないのはなぜ?

Windows全般
スポンサーリンク

Windowsにおいて、管理者ユーザーでサインインしているのに、あるファイルを変更しようとすると「アクセス権が無い」と言われることはありませんか?

この記事では、まず「管理者として実行」で解消するか、確認する方法を紹介します。さらに、それでうまくいく理由と対処方法について、UAC(ユーザーアカウント制御)の挙動とともに解説していきます。

問題

Windowsに、管理者ユーザーでサインインしているのにファイルを保存できません。

例えば、管理者権限を持つ「admin-user1」というユーザーでサインインして、自PC内にあるテキストファイルをメモ帳で開き、上書き保存しようとすると、以下のエラーになります

診断:「管理者として実行」を試す

まずは診断として、アプリケーションを「管理者として実行」を試してみます。例として、メモ帳でテキストファイルを変更しようとしている場合は、次の流れで操作します。メモ帳以外のアプリケーションの場合は、そちらに置き換えて操作します。

テキストファイルで「管理者として実行」を試す流れ
  • step1
    メモ帳を右クリックして「管理者として実行」

    スタートメニューでメモ帳を右クリックして、「その他」>「管理者として実行」を選びます。(右クリックメニューから「管理者として実行」の場合もあり)

    スタートメニューからメモ帳を「管理者として実行」する
  • step2
    確認ダイアログで「はい」を選択

    ユーザーアカウント制御の確認ダイアログが表示されたら、「はい」を選択します。

    ユーザーアカウント制御ダイアログ
  • step3
    ファイルを開く

    メモ帳のメニュー[ファイル]>[開く]から、対象のテキストファイルを選択してファイルを開きます。

    メモ帳でメニューから「開く」を選択
  • step4
    上書き保存する

    ファイルの変更が出来るかどうか確認するために、メモ帳のメニュー[ファイル]>[上書き保存]を選択してみます。

    メモ帳でメニューから「上書き保存」を選択

上記の操作をするとどうなるでしょうか? 結果に応じて、案内する内容が変わります。

  1. 「管理者として実行」でうまくいく場合
    • a.「目的は果たした。もういいや」という方
      • 上記の手順が対処方法になります。この後の内容は少々ややこしいので、続きは必ずしも読まなくてOKです。
    • b.「何故?」あるいは「これを毎回やるのは面倒」という方
      • このようになる原因や、対処方法について、以降で解説しています。ただし、システム寄りの少々小難しい話になっています。
  2. 「管理者として実行」でうまくいかない場合
    • ファイルやユーザーのアクセス権限に問題があると考えられます。しかし、本記事は別のケースについて解説していますので、以降を読んでも解決できない可能性が高いです。アクセス権限に絞って、さらに調べてみることをおすすめします。

状況を整理する(ケース例)

ここからは、「管理者として実行」のときだけファイルを上書き保存(変更)が出来る理由を考えていきます。まずは状況を整理しましょう。今回想定するケースは以下の通りです。

状況

  • Windowsの管理者権限を持つユーザー「admin-user1でサインイン。
  • 自PC内あるテキストファイル「C:\folder1\config.txt」を変更するときの挙動が異なる。
    • (A) テキストファイルをダブルクリックしてメモ帳を開くと…
      • 次のエラーになり失敗する。
        • 「このファイルを開くためのアクセス許可がありません。このファイルの所有者または管理者に問い合わせてアクセス許可を取得してください。」
    • (B) メモ帳を「管理者として実行」で起動し、上記テキストファイルを開くと…
      • 問題なく上書きできる

ユーザー権限の確認

さて、今回のユーザー「admin-user1」の所属グループを確認してみます。

「コンピューターの管理」を開き(起動方法)、「ローカルユーザーとグループ」>「ユーザー」から「admin-user1」のプロパティを確認します。

admin-user1ユーザーのプロパティ。所属するグループタブ

[所属するグループ]タブには、上のように「Administrators」があります。これは、このコンピューターの管理者権限を持っているということです。そのため、権限不足ではないように見えます。

ファイルのアクセス権を確認

次に、今回変更対象のファイル「C:\folder1\config.txt」のアクセス権を確認してみます。

該当ファイルを右クリックして「プロパティ」を開きます。[セキュリティ]タブの「詳細設定」ボタンから、アクセス権を表示すると下の通りになっています。

ファイルのアクセス権設定画面

この画面を見慣れてない方も多いかと思いますが、赤枠の部分で、「Administrators」グループに対し「フルコントロール」を許可しているのが分かります。

つまり「Administrators」グループに属するユーザーであれば、上書き保存だろうが削除だろうが、なんでも許すという意味です。こちらも、特に問題ないように見えます。

設定は問題なさそう?

いかがでしょうか。このケース、不可解ではありませんか?「Administrators」に対しフルコントロール許可されたファイルを、「Administrators」グループのユーザーが操作しています。

なのに、普通に上書きしようとするとエラーになります。「管理者として実行」すればうまくいきますが、「管理者として」もなにも、最初から管理者ですよね?

この理由について、次項で解説します。

解説

この不思議とも思える現象は、UAC(ユーザーアカウント制御)による挙動です。不具合ではありません。

実は、「Administrators」のアクセス権限が適用されるのは「管理者として実行」したときだけなのです。どういうことか、具体的に解説していきます。

上のケースで「admin-user1」ユーザーがテキストファイルを開いたとき、何が起きているのでしょうか。メモ帳を(A)普通にダブルクリックして開いた場合と、(B)「管理者として実行」した場合、それぞれで解説していきます。

(A) 普通にダブルクリックして開いた場合

「admin-user1」は、Administrators権限を封印します。

つまり、下のように「Administrators」グループには所属していないものとみなします。従って、「Users」グループにしか所属していないものとして扱われます。

admin-user1ユーザーのプロパティ。「Administrators」グループを封印(無いものとみなす)

テキストファイルのファイルのアクセス権は、下の赤枠分の「読み取りと実行」の権限が適用されます。

ファイルのアクセス権設定画面。Users/読み取りと実行が適用される

従って、ファイルは開けますが、変更(上書き保存)は出来ません。

(B) 「管理者として実行」した場合

「admin-user1」は、Administrators権限を行使します。

つまり、下のように「Administrators」グループに所属しているものとして扱われます。(「Administrators」と「Users」の両グループに所属)

admin-user1ユーザーのプロパティ。「Administrators」グループを封印しない

テキストファイルのファイルのアクセス権は、下の赤枠分の「フルコントロール」の権限が適用されます。(Usersグループにも所属していますが、この場合は、より強いほうの権限が適用されます)

ファイルのアクセス権設定画面。Administrators/フルコントロールが適用される

従って、ファイルの変更(上書き保存)が出来ます

普通に開くと、Administratorsグループに属していても、封印されて無かったことにされるということです。UACがそのような挙動をする理由は、主にセキュリティを高めるためです。詳しい説明は省きますが、不正なプログラムが勝手にシステムを変更しないようにしている、と捉えるとよいでしょう。

補足:Windows Serverの「Administrator」ユーザーの場合は?

上のケースでは「admin-user1」というAdministratorsグループに属するユーザーの場合です。Windows Serverの場合、ビルトインのAdministratorユーザーで操作するケースもあります。

この場合については、別記事で補していますので、そちらをご覧下さい。

対処方法

理由が分かったとして、ではどうすればよいのでしょうか。

特に厳重に管理すべきものでないテキストファイルを、毎回メモ帳を「管理者として実行」するのも効率が悪い。かといってUAC自体を無効にするのは、セキュリティ上好ましくないでしょう。ここでは2つの対処方法を紹介します。

方法① ファイルのアクセス権を編集する

テキストファイルやそのフォルダに対し、該当ユーザーのアクセス権を追加します。

下の例では、テキストファイルがあるフォルダに対し、「admin-user1」にフルコントロール権限を追加しています(テキストファイルにもこの権限設定が継承されます)。

ファイルのアクセス権設定画面。「admin-user1」ユーザーに対してフルコントロール権限を追加した例

こうすると「Administrators」を封印しても、フルコントロールの権限を持ちます。

方法② 該当ユーザーが作ったフォルダ・ファイルを利用する

今回のケースのテキストファイルは、実は別のユーザー作成したという設定でした。もしこれがadmin-user1自身が作成したものであれば、悩みは無かったのです。

詳しい理由は補足記事で解説しますが、別のユーザーが作ったファイル・フォルダではなく、自分が作ったものにすればいいわけです。従って、例えばいったん該当フォルダ・ファイルを消して、admin-user1でサインインした状態で、同じものを作り直せばよいわけです。

ただし「それを消すなどとんでもない」という場合、上で紹介したアクセス権の追加が妥当でしょう。

補足

ここで解説した内容の補足は、下記の記事を参照して下さい。

おわりに

今回の記事は以上です。ご質問やご意見等ありましたら、下のコメント欄やtwitterからお願いします。

当サイトでは、ITインフラ関連の知識やノウハウをメインに紹介しています。下の関連記事にも役立つ情報があるかもしれませんので、ぜひご覧下さい。

また、知識やノウハウを効率的に学ぶ方法として、Udemy の「ながらセミナーもおすすめです。三日坊主にならず、普段の生活の中でスキルアップする方法です。これについては下の記事で紹介していますので、良ければご覧下さい。

もとだて
もとだて

最後まで読んでいただき、ありがとうございました。

フィードバック

コメント

タイトルとURLをコピーしました