【Windows 10】「コンテナー内のオブジェクトを列挙できません」エラーを解決する4つの方法
Windows 10でファイルやフォルダーのアクセス許可を変更しようとした際、「コンテナー内のオブジェクトを列挙できません(Failed to enumerate objects in the container)」というエラーに遭遇したことはありませんか?データの安全性とプライバシーを保つため、PCの管理者が重要なファイルやドキュメントに対してユーザーごとのアクセス権限を設定していることがあります。そのため、他のユーザーがアクセスやアクセス許可の変更を試みると、このエラーが表示されるのです。
しかし、このエラーは管理者アカウントでログインしていても発生することがあります。そうなると管理者自身も、自分や他のユーザー・グループ向けにアクセス許可を変更できなくなり、非常に困った状況になります。本記事では、Windows 10におけるこのエラーの解決方法を4つご紹介します。

「コンテナー内のオブジェクトを列挙できません」エラーを修正する4つの方法
エラーが発生する主な原因
このエラーが発生する主な理由は以下の通りです。
- システム上のファイルやフォルダー同士の競合による問題
- フォルダー設定の誤った構成
- サードパーティ製アプリケーションが、ファイルやフォルダーの既定のアクセス許可エントリを意図せず削除してしまうこと
以下に、このエラーを解消するための4つの対処法を紹介します。
方法1: ファイルの所有権を手動で変更する
最も効果的な方法は、エラーが発生しているファイルの所有権を手動で変更することです。多くのユーザーがこの方法で問題を解決したと報告しています。
注意: この操作を行う前に、必ず管理者アカウントとしてログインしてください。
手順:
1. エラーが発生するファイルを見つけます。対象のファイルを右クリックし、「プロパティ」を選択します。

2. 上部にある「セキュリティ」タブを開きます。
3. ウィンドウ下部の「詳細設定」ボタンをクリックします。

4. 「セキュリティの詳細設定」画面で、「所有者」項目の横にある「変更」をクリックします。

5. 「ユーザーまたはグループの選択」ウィンドウが表示されるので、「選択するオブジェクト名を入力してください」のテキストボックスにユーザーアカウント名を入力します。
6. 「名前の確認」をクリックします。

7. システムが自動的にユーザーアカウントを検出し、下線付きで表示されます。
もしWindowsがユーザー名を認識しない場合は、ウィンドウ左下の「詳細設定」をクリックし、一覧から対象のユーザーアカウントを手動で選択してください。
8. 詳細設定画面で「検索」をクリックし、一覧から自分のユーザーアカウントを選択して「OK」をクリックします。

9. 元の画面に戻ったら「OK」をクリックして次へ進みます。

10. フォルダー内のサブフォルダーやファイルも含めて所有権を変更したい場合は、「サブコンテナーとオブジェクトの所有者を置き換える」にチェックを入れます。
11. 次に、「すべての子オブジェクトのアクセス許可エントリを、このオブジェクトからの継承可能なアクセス許可エントリで置き換える」にもチェックを入れます。
12. 「適用」をクリックして変更を保存し、ウィンドウを閉じます。

13. 再度「プロパティ」ウィンドウを開き、手順1〜3と同じ操作で「セキュリティ > 詳細設定」へ移動します。

14. 画面左下の「追加」ボタンをクリックします。

15. 「プリンシパルの選択」をクリックします。

16. 手順5〜6と同じ要領でアカウントのユーザー名を入力・検索します。
ヒント: 「Everyone」と入力して「名前の確認」をクリックしても構いません。
17. 「OK」をクリックします。

18. 表示された新しいウィンドウで、「すべての子オブジェクトのアクセス許可エントリを、このオブジェクトからの継承可能なアクセス許可エントリで置き換える」にチェックを入れます。
19. ウィンドウ下部の「適用」をクリックして変更を保存します。

20. 最後に、すべてのウィンドウを閉じます。
以上の手順でエラーが解決したかどうかを確認してみてください。
方法2: ユーザーアカウント制御(UAC)設定を無効にする
方法1で解決しない場合は、ユーザーアカウント制御(UAC)の設定を一時的に無効化してから、再度方法1を試してみましょう。
手順:
1. Windowsの検索バーに「ユーザーアカウント制御設定の変更」と入力し、検索結果から開きます。

2. UACの設定画面が表示され、左側にスライダーがあります。
3. スライダーを一番下の「通知しない」までドラッグします。

4. 「OK」をクリックして設定を保存します。
5. PCを再起動し、エラーメッセージなしでファイルのアクセス許可を変更できるか確認します。
6. 解決しない場合は、方法1をもう一度実行してください。これで問題が解決するはずです。
方法3: コマンドプロンプトを使用する
コマンドプロンプトで特定のコマンドを実行することで、このエラーが解決したという報告もあります。
手順:
1. Windowsの検索バーに「コマンドプロンプト」と入力します。
2. 「管理者として実行」をクリックし、管理者権限でコマンドプロンプトを起動します。

3. 「このアプリがデバイスに変更を加えることを許可しますか?」という確認画面が表示されたら「はい」をクリックします。
4. 以下のコマンドを1行ずつ実行し、それぞれEnterキーを押します。
注意: 「X:\FULL_PATH_HERE」の部分は、実際の問題のあるファイルやフォルダーのパスに置き換えてください。
takeown /F X:\FULL_PATH_HERE takeown /F X:\FULL_PATH_HERE /r /d y icacls X:\FULL_PATH_HERE /grant Administrators:F icacls X:\FULL_PATH_HERE /grant Administrators:F /t

5. コマンドの実行が完了したら、コマンドプロンプトを閉じて、問題が解決したかどうかを確認します。
方法4: セーフモードでシステムを起動する
最後の手段として、Windows 10をセーフモードで起動する方法があります。セーフモードではサードパーティ製アプリが起動せず、Windowsのシステムファイルと基本プロセスのみが動作します。セーフモード中にフォルダーへアクセスして所有権を変更することで、エラーを回避できる可能性があります。この方法は任意であり、他の方法で解決しない場合の最終手段としておすすめします。
手順:
1. まず現在のユーザーアカウントからログオフし、サインイン画面を表示します。
2. Shiftキーを押しながら、画面右下の「電源アイコン」をクリックします。
3. 「再起動」を選択します。

4. システムの再起動後、「オプションの選択」という画面が表示されます。
5. 「トラブルシューティング」をクリックし、「詳細オプション」へ進みます。

6. 「スタートアップ設定」をクリックし、「再起動」を選択します。

7. PCの再起動後にスタートアップオプションの一覧が表示されるので、「4」または「6」を選択してセーフモードで起動します。

セーフモードで起動したら、再度方法1を実行してエラーを修正しましょう。
関連記事
- Windows 10のインストール失敗エラー(コード80240020)の解決方法
- MSペイントで背景を透明にする方法
- PUBG Mobileのインターネット接続エラーの直し方
- Windows 10でTVにHDMI接続した際に音が出ない問題の解決方法
本ガイドがお役に立ち、「Windows 10でコンテナー内のオブジェクトを列挙できないエラー」の解決につながれば幸いです。ご質問やご意見がありましたら、ぜひコメント欄でお知らせください。
-
Windows 10で「L2TP接続の試行に失敗しました」エラーを修正する16の方法
L2TP(Layer Two Tunneling Protocol/レイヤー2トンネリングプロトコル)は、主にVPN(仮想プライベートネットワーク)を支えるために使われるプロトコルです。VPNは、別の環境にあるサーバーのデータで元のデータをマスキングすることで接続元を隠し、地理的な位置情報を覆い隠すことで、ネットワーク経路上のさまざまな制限を回避できるようにします。ところが近年、「セキュリティレイヤーで処理エラーが発生したため、L2TP接続の試行に失敗しました」というエラーが表示され、VPN接続を確立できないという相談が多数寄せられています。同じ症状でお困りの方は、この記事で紹介する効果的なト
-
Windows 10で「リモート プロシージャ呼び出しに失敗しました」エラーを解決する方法
Windows 10では、さまざまなシステムエラーや不具合が発生することがありますが、その多くは適切な対処法によって解決できます。Windows 10で「リモート プロシージャ呼び出しに失敗しました(The remote procedure call failed)」というエラーに悩んでいる方もご安心ください。この記事では、この問題の原因と具体的な解決方法をわかりやすく解説します。リモート プロシージャ コール(RPC)とは?RPC(Remote Procedure Call:リモート プロシージャ コール)とは、異なるコンピュータ上で動作するプログラム同士が、互いの手続き(サブルーチン)を呼