修正:「コンテナ内のオブジェクトの列挙に失敗しました」エラー

フォルダを開こうとすると、「 現在、このフォルダにアクセスする権限がありません。 このフォルダに永久にアクセスするには、[続行]をクリックします。

[続行]をクリックすると、「 このフォルダにアクセスする権限が拒否されました。 このフォルダにアクセスするには、セキュリティタブを使用する必要があります。

[セキュリティ]タブにアクセスすると、「 このオブジェクトのプロパティを表示するには読み取り権限が必要です。 [詳細]をクリックして続行します。

また、「詳細」タブは空で、「 このオブジェクトのプロパティを表示するには、読み取り権限が必要です。 [続行]をクリックして、管理者権限で操作を試みます。

[続行]ボタンをクリックするのは、やはり無駄な試みです。 高度な権限のダイアログに「 管理者ユーザーとしても、このオブジェクトのセキュリティプロパティを表示する権限がありません。 プロパティの表示権限を含むオブジェクトの所有権を取得するには、上の[変更]をクリックしてください。

ダイアログに「 現在の所有者を表示できませんと表示されているため、現在の所有者を特定できません

フォルダーの所有権を変更し、[高度なセキュリティ]ダイアログを使用してフォルダーとサブフォルダーにアクセス許可を追加すると、コンテナーエラーのオブジェクトの列挙に失敗したことが表示される場合があります。

セキュリティの適用エラー

セキュリティ情報を以下に適用中にエラーが発生しました:

コンテナ内のオブジェクトの列挙に失敗しました。 アクセスが拒否されました

の権限の変更を保存できません。 アクセスが拒否されました。

原因

上記の現象は、アカウントまたはAdministratorsグループに、フォルダーまたはファイルにアクセスするためのアクセス許可がない場合に発生します。 いくつかの奇妙な状況で、デフォルトの許可エントリはおそらく不正なプログラムによって削除されるかもしれません。 デフォルトでは、ほとんどのフォルダについて、管理者はフルコントロールのアクセス許可を持ち、UsersまたはAuthenticated Usersグループは少なくとも読み取りアクセス許可を持っています。 これらのデフォルトの権限が削除されると、エラーが発生します。

ある時点から存在しないユーザーアカウントがファイルまたはフォルダを独占的に所有している場合があり、古いアクセス許可エントリが残っています。

バックグラウンドで実行されている管理者またはシステムレベルのプロセスまたはサービスがファイルまたはフォルダーをロックしている可能性もあります。 これにより、ユーザーがフォルダーにアクセスしたり、ファイル/フォルダーのアクセス許可を変更したりできない場合があります。

解決

アクセス許可の欠落が原因で問題が発生した場合は、フォルダーの所有権を再帰的に取得して、必要なアクセス許可を追加できます。

ファイルまたはフォルダーの所有権を取得し、アクセス許可を割り当てる

[セキュリティの詳細設定]ダイアログで、[所有者:]フィールドの横にある[ 変更 ]をクリックします。

オブジェクト名フィールドにAdministratorsと入力し、[OK]をクリックします。

[ サブコンテナとオブジェクトの所有者を置き換える]を選択し、[ 適用 ]をクリックします。

このオブジェクトの所有権を取得したばかりの場合は、メッセージが表示されます。権限を表示または変更する前に、このオブジェクトのプロパティを閉じて再度開く必要があります。

Advanced securityダイアログを閉じて、再度開きます。 これで、必要なアクセス許可エントリを追加できるようになります。

完了したら、ユーザーまたはグループに追加/必要な権限を割り当てます。 例: SYSTEMフルコントロール | ユーザー読み取りと実行など。

コマンドラインを使用する

管理者のコマンドプロンプトからこれを行うには、次のコマンドを実行します。

 takeown / f "D:\ Test \ Stubborn" / a / r / dy icacls "D:\ Test \ Stubborn" / t / c / grant管理者:F 

Windowsでコマンドラインを使用してファイルまたはフォルダーの所有権を取得するの記事で、コマンドラインを介して所有権を変更する方法を詳しく見てきました。 詳細については、記事を参照してください。

「コンテナ内のオブジェクトの列挙に失敗しました」というエラーの原因は何ですか?

フォルダとサブフォルダに権限を追加すると、次のエラーが表示される場合があります。

セキュリティの適用エラー

セキュリティ情報を以下に適用中にエラーが発生しました:

コンテナ内のオブジェクトの列挙に失敗しました。 アクセスが拒否されました

の権限の変更を保存できません。 アクセスが拒否されました。

上記のエラーは、現在のフォルダーのみの所有権を変更し、サブフォルダーとファイルの所有権を変更していない場合に発生します。 サブフォルダに権限を適用するには、サブフォルダを所有している必要があります。

コンテナーエラーでオブジェクトを列挙できませんでしたというエラーは、現在のフォルダーの1つ以上のサブフォルダーのNTFSアクセス制御リスト(ACL)を表示または変更するための所有権または権限がないことを意味します。

問題を解決するには、前述のように所有権を変更する手順を再実行します。 今回は、サブコンテナとオブジェクトの所有者を置き換えるを選択する必要があることを確認し、[ 適用 ]をクリックして所有権を再帰的に適用します。

補足として、上記のtakeown.exeコマンドラインは、 /rパラメータが含まれているため、所有権を再帰的に変更します(サブフォルダとファイル)。 また、上記のicacls.exeコマンドラインは、 /tスイッチのおかげで再帰的にアクセス許可を適用します( トラバースオプションは、指定されたディレクトリの下にあるすべての一致するファイル/ディレクトリに対して操作を実行します)。

所有権または権限を変更できませんか? ファイルまたはフォルダがロックされている可能性があります

場合によっては、バックグラウンドのプログラムまたはサービスがファイルまたはフォルダーを排他的にロックし、上記のtakeown.exeコマンドラインを実行するとAccess is deniedエラーが発生することがあります。

プロセスエクスプローラーを使用すると、ファイルシステムオブジェクトをロックしているプロセスまたはサービスの名前を確認できます。 見つけたら、プロセスを終了するか、サービスを停止してハンドルを解放するだけです。

[例]プロセスエクスプローラーハンドルまたはDLL検索ファイルまたはフォルダーをロックしているプロセスを知るには、Microsoftプロセスエクスプローラーまたは組み込みのリソースモニターを使用できます。 これらについては、次の記事で説明しています。
  • リソースモニターを使用してファイルをロックしているプロセスを見つける方法
  • サードパーティツールを使用せずにファイルをロックしたプロセスを見つける
  • Windowsで頑固で削除できないファイルまたはフォルダーを削除する方法

Windows 10をセーフモードで起動する

別の方法は、サードパーティのサービスとプログラムが実行されず、ファイル/フォルダーのロックの問題が発生しないセーフモードでWindowsを起動することです。 セーフモードから、フォルダーにアクセスしたり、フォルダーの所有権やアクセス許可をそれに応じて変更したりできるはずです。

  1. サインイン画面が表示されたら、Shiftキーを押しながら電源アイコンを選択し、[再起動]をクリックします。
  2. コンピューターが再起動し、「オプションの選択」画面が表示されます。
  3. トラブルシューティング→詳細オプション→起動設定→再起動を選択します。

    コンピュータが再起動すると、起動オプションのリストが表示されます。

  4. 4またはF4を選択してPCをセーフモードで起動するか、 5またはF5を選択してセーフモードとネットワークを使用します。
  5. セーフモードにログインし、新しい管理者アカウントの作成、レジストリやファイルシステムのアクセス許可の修正などの管理タスクを実行します。

Chkdskを実行する

セーフモードでも、takeown.exeコマンドとicacls.exeコマンドの両方でアクセス拒否エラーが発生する場合は、ファイルシステムの破損を示している可能性があります。 影響を受けるパーティションでChkdskを実行すると問題が解決するはずです。

C:\ドライブでChkdskを実行するには、管理者のコマンドプロンプトから次のコマンドを実行します。

 CHKDSK / RC:\ 

Chkdskは次の起動時に実行され、それでうまくいくはずです!

関連記事