登録の破損が原因のWindowsでの深刻なディスククリーンアップの問題

読者の質問: 160 GBのWestern Digitalハードドライブを40 GBのオペレーティングシステムパーティションにパーティション化し、残りの120 GBをファイル用にパーティション化しました。 ただし、Vista Ultimate内からディスククリーンアップユーティリティを実行すると、クリーンアップするための複数の131GBオプションが表示されます。 [OK]をクリックして選択したエントリをクリーンアップすると、40GBパーティションのすべてが消去されました。 その後、Windows Vistaを再インストールする必要がありましたが、問題は再発しているようです。

(この投稿の情報は、Windows Vista、7、およびWindows 8システムに適用されます。)

Windowsエラー報告ディスククリーンアップハンドラー

そのような質問をさらに3つ受けたので、この問題に取り組むことにしました。 ディスククリーンアップが表示したスクリーンショットは次のとおりです。

図1:削除するファイルのリストを示すディスククリーンアップ

上記のディスククリーンアップグラフィックによると、Windowsエラー報告ファイルは196 GBで構成されており、この場合は不可能です。 影響を受けるシステムからこのキーのレジストリエクスポートを要求しました。

 HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Explorer \ VolumeCaches 

上記のレジストリの場所には、ディスククリーンアップハンドラとその登録情報のリストが含まれています。 システムと設定を比較したところ、 VolumeCachesブランチの下の次の各サブキーに、 Folderという名前の非常に重要な値が欠落していることに気付きました

$config[ads_text6] not found

| _ Windowsエラー報告アーカイブファイル

| _ Windowsエラー報告キューファイル

| _ Windowsエラー報告システムアーカイブファイル

| _ Windowsエラー報告システムキューファイル

MSDNドキュメントのこの段落は、 Folderレジストリ値の説明を提供します。

FileList値のエントリに一致するアイテムを検索する特定のフォルダー。 ?を使用してワイルドカードを指定できます。 または*文字。 値のタイプがREG_SZの場合、複数のフォルダー名は|を使用して区切られます。 文字、その両側にスペースなし。 CSIDL値が存在する場合、この値で指定できるフォルダーは1つだけです。 CSIDL値で示される場所は、検索パスを構成するためにそのフォルダーパスの前に付加されます。 たとえば、CSIDL値の説明を参照してください。 この値がない場合、現在のボリュームのルートフォルダーが使用されます。 その場合、ドライブ全体を検索するには、DDEVCF_DOSUBDIRSフラグが必要です。

ディスククリーンアップがFileListレジストリ値(この場合は*。*ワイルドカードを使用)に記載されているファイルのリストについてボリューム全体を再帰的に検索し、DDEVCF_DOSUBDIRSフラグが存在する場合は削除するボリュームのすべてを含めることを示す最後の行に注意してください有効(デフォルトで有効 )。

ディスククリーンアップWERハンドラーの修正

以下のREGファイルは、上記の各レジストリキーのフォルダレジストリ値を修正するためのもので、実際に問題を解決しました。 これは、修正を実行した後にディスククリーンアップが示したものです。

ダウンロード

  • Windows Vistaまたは7のcleanmgrfix.zip
  • Windows 8のcleanmgrfix-w8-1.zip

関連:ディスククリーンアップバグ:3.99 TBがWindows Updateで使用

コンテンツインデックスクリーナーのディスククリーンアップハンドラー

これは同様のケースですが、今回はContent Index Cleanerのディスククリーンアップハンドラです。

読者の1人が尋ねました: 私は自分のPCでレジストリクリーナーを使用しましたが、ブログの投稿「登録の破損による深刻なディスククリーンアップの問題」に記載されているのとまったく同じ問題があります。 ディスククリーンアッププログラムは、Windowsインストールを含むすべてをクリーンアップしました。 修正はありますか?

質問者から送信されたVolumeCachesブランチを比較した後、問題を次のキーに絞り込みました。

 HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Explorer \ VolumeCaches \ Content Indexer Cleaner 

上記のキーには、 Folderという名前の値がありませんでした。 Folder値が存在し、次のデータが含まれている必要があります。

 ?:\ Catalog.wci 

値が不足しているため、ディスククリーンアップでコンテンツインデクサーのカタログファイルを選択すると、ディスククリーンアップを管理者として実行すると、現在のパーティションのファイルが消去されます。

ディスククリーンアップコンテンツインデックスクリーナーハンドラーの修正

不足しているエントリを復元するレジストリの修正を次に示します。

 Windowsレジストリエディタバージョン5.00 [HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Explorer \ VolumeCaches \ Content Indexer Cleaner] @ = "{A9B48EAC-3ED8-11d2-8216-00C04FB687DA}" "PropertyBag" = "{24400D16-5754-11d2 -8218-00C04FB687DA} "" FileList "=" *。* "" Folder "="?:\\ Catalog.wci "" Flags "= dword:00000141" Priority "= dword:0000012c 

上記の行をメモ帳にコピーし、.reg拡張子を付けて保存します。 ファイルを右クリックして、[ マージ ]を選択します。 確認を求められたら、[ はい]をクリックします。

上記のレジストリ設定は、Windows 10(バージョン1809までテスト済み)を含むすべてのバージョンのWindowsに適用されます。

おわりに

私は問題がどこにあるかを特定することはできましたが、 フォルダーの値が最初からどのように消えたかについての手がかりはありませんでした。 これは、レジストリクリーナーを実行した結果である可能性があります。 常に、ディスククリーンアップウィンドウで、ディスクスペースの総量の近くに表示されるディスクスペースに目を向けてください

しかし、別の問題があります。 ユーザーは、ディスククリーンアップを非対話的に実行するとき、つまりディスククリーンアップを自動化するとき、またはWindowsが/verylowdiskスイッチを使用してタスクスケジューラ経由でディスククリーンアップを自動的に実行するときに、何が削除されているかを知ることはありません。

この投稿が、システムの重大な問題を回避するのに役立つことを願っています。 レジストリクリーナーを使用していて、この問題が発生している読者は、この記事にコメントしてください。

関連記事