Windows では、特に特定のファイルやフォルダにアクセスしようとしたときに、なかなか消えない厄介なエラーが発生することがあります。通常、これらのエラーには何らかのエラー コードが付随しており、Google で検索すれば解決策が見つかるのでありがたいものです。しかし、エラー コードがなく、Windows が突然「アクセスが拒否されました」と表示した場合はどうすればよいでしょうか。権限や所有権が何らかの形で絡み合っているか、何らかのセキュリティ設定によって警告なしにファイルが乗っ取られたように感じられてイライラします。このような状況に心当たりがあっても、心配しないでください。修正方法はいくつかあり、主に所有権の取得、権限の調整、暗号化の処理などが挙げられます。ただし、所有権と権限をいじくり回すのは少しデリケートな作業になる可能性があるので、事態を悪化させないように、事前に復元ポイントを作成しておくことをおすすめします。
Windows 10 でアクセス拒否エラーを修正するにはどうすればいいですか?
所有権と権限が最善策かもしれない
これはちょっと面倒です。なぜなら、特にソフトウェアの更新やシステムクラッシュの後、Windows がファイルやフォルダの所有権を「失う」ことがあるからです。ここでの考え方は、所有権を取り戻して、Windows が再びファイルの読み取り、書き込み、変更できるようにすることです。これは、コンテンツを所有していない場合、Windows は、どのようなアクセス許可が設定されていてもアクセスをブロックするため役立ちます。一種のセキュリティサンドボックスの不正行為のようなものです。通常は、ファイルまたはフォルダのプロパティを開き、セキュリティタブに移動して、詳細設定をクリックします。そこから、所有者名の横にある変更ボタンをクリックし、ユーザーアカウントまたはAdministratorを入力して、名前の確認 をクリックして、OK をクリックします。適用 をクリックする前に、サブコンテナとオブジェクトの所有者を置き換える を必ずチェックしてください。一部のセットアップでは、特に多数のサブフォルダを処理している場合など、これを再帰的に実行する必要があるため、そのボックスを忘れずにチェックしてください。
所有権の変更後もエラーが発生する場合は、先ほどと同じ「セキュリティの詳細設定」に戻り、「子オブジェクトのすべてのアクセス許可エントリを、このオブジェクトからの継承可能なアクセス許可エントリで置き換える」を有効にしてください。そうすれば、アクセス許可が適切に継承されます。Windowsは当然ながら、必要以上に複雑にする必要があるからです。
権限を手動で追加すると違いが出てきます
所有権を変更した後、ユーザーアカウントが権限リストに表示されない場合は、手動で追加する必要があります。「高度なセキュリティ設定」で、 「追加」 > 「プリンシパルの選択」をクリックし、ユーザー名を入力して「名前の確認」(確認のため)をクリックし、「OK」をクリックします。種類を「許可」に設定し、「適用先」を「このフォルダー、サブフォルダー、およびファイル」に設定し、「フルコントロール」にチェックを入れます。もう一度「OK」をクリックします。これで適切なアクセス権限が付与されるはずです。ロックアウトされた内容によっては、複数のフォルダーやファイルに対してこの操作を行う必要がある場合があります。
もっと凝ってみたいと思いませんか?管理者権限でコマンドラインから所有権を取得することもできます。コマンドプロンプトに以下を入力してください。
takeown /f <full_path_to_file_or_folder>
置き換えます`
takeown /f <folder_path> /r /d y
一部のマシンではこれがうまく機能するかどうかはわかりませんが、通常は、手間をかけずに扱いにくいファイルを制御できるようになります。
ファイルが暗号化または保護されているかどうかを確認する
フォルダーのプロパティで「内容を暗号化してデータをセキュリティで保護する」チェックボックスを見たことがありますか? BitLocker またはその他の暗号化機能を有効にしている場合、Windows によってフォルダーが暗号化されることがあります。有効になっている場合、適切な証明書を持っていないことがアクセス拒否エラーの原因である可能性があります。確認するには、フォルダーを右クリックし、[プロパティ]に移動して、[詳細設定]に移動します。[内容を暗号化する] 行の下で、チェックされているかどうかを確認します。チェックされている場合は、フォルダーを開いたり復号化したりするために暗号化証明書が必要になります。そうでない場合は、復号化するまで操作ができなくなります。証明書を持っている場合は、同じ詳細設定で復号化できます。証明書を持っていないと、暗号化を解除するのが面倒になる可能性があります。
潜在的なファイル破損を修正
停電やシステムクラッシュなどによりファイルが破損している場合も、アクセス拒否が発生する可能性があります。Windowsのファイルシステムは、単純に言ってしまえば破損したファイルを許容しません。管理者特権のコマンドプロンプトでSFC /scannowを実行すると、システムファイルの問題は修復できますが、破損したシステムファイル以外のファイルは修復できません。それでも、破損が疑われる場合は試してみる価値はあります。
sfc /scannow
実行して完了したら再起動してください。環境によっては、破損したファイルが修復されるか、少なくとも特定される可能性があります。そうでない場合は、バックアップまたは以前の復元ポイントから復元する方が安全かもしれません。壊れたファイルを手動で修復するのに何時間も費やしたい人はいないでしょうから。
ユーザープロファイルに問題がある場合は、ローカルアカウントに切り替えます
特に古いOSからWindows 10に移行したばかりの場合や、Microsoftアカウントでサインインしている場合は、ユーザープロファイル自体が破損していることがあります。ローカルアカウントに移行すると、プロファイルに欠陥があっても権限とルールをリセットできます。これを行うには、スタートボタンを右クリックし、 「設定」に移動して「アカウント」を選択し、「代わりにローカルアカウントでサインイン」を選択します。画面の指示に従ってユーザー名とパスワードを設定し、サインアウトして新しいローカルアカウントで再度サインインします。この方法がうまくいくと、アクセスの問題は解消される傾向があります。必ずしも解決するとは限りませんが、試してみる価値は十分にあります。
Windows.oldから古いファイルを回復する
最近、別のバージョンのWindowsからアップグレードした場合、または既存のOSに上書きインストールした場合、Windows.oldフォルダにファイルが保存されているものの、権限や競合によりアクセスがブロックされている可能性があります。このフォルダを参照することで、ファイルを簡単に復元できる場合があります。Windows.oldを見つけて開き、ドキュメント、ダウンロードファイル、その他のデータを探してください。もちろん、確実に復元できるとは限りませんが、すぐに元の状態に戻したい場合は、バックアップから復元するよりも簡単です。
まとめ
アクセス拒否エラーへの対処は、Windows自体と格闘しているような気分になるかもしれませんが、多くの場合、所有権、権限、または暗号化の問題に帰着します。GUI、コマンドプロンプト、または暗号化の管理を使って権限を修正することで、通常は解決します。ただし、所有権の変更には注意し、重要なデータは必ず事前にバックアップしておくようにしてください。運が良ければ、これらの方法のいずれかで問題が解決し、ファイルの制御を取り戻すことができます。そうでない場合は、最初からやり直すか、バックアップから復元するしか解決策がないこともあります。この方法が役に立ち、誰かのストレスを解消してくれることを願っています。
まとめ
- プロパティまたはコマンドラインから所有権を取得する
- 必要に応じて権限を手動で調整する
- 暗号化を確認し、必要に応じて復号化する
- システムファイルの破損チェックを実行する
- ローカルユーザープロファイルへの切り替えを検討する
- 該当する場合はWindows.oldからデータを回復する