Windows 7
 Computer >> コンピューター >  >> システム >> Windows 7

Windows.edbファイルが肥大化する原因と対処法!検索インデックスのサイズを削減する6つの方法

Windows.edbは、Windows Searchの検索インデックスデータベースです。検索インデックスがあることで、ファイルシステム上のデータやファイル、PSTファイル内のメールなどを素早く検索できるようになります。インデックス作成は、SearchIndexer.exeプロセスによってバックグラウンドで実行されます。当然ながら、システム内のファイル数が多いほどWindows.edbファイルのサイズも大きくなり、場合によっては数十GB、さらには数百GBにまで成長して、システムドライブの空き容量を圧迫することもあります。

Windows.edbは隠しファイルで、デフォルトではC:\ProgramData\Microsoft\Search\Data\Applications\Windows\フォルダに保存されています。

注意:Windows.edbファイルは、Windows 7/Server 2008からWindows 10/Server 2019までのすべての最新のクライアントおよびサーバー向けMicrosoft OSに存在します。

例えば筆者の環境では、Windows.edbのサイズは15.5GBを超えており、100GBのSSDドライブの15%以上を占有していました。

現在のWindows.edbファイルのサイズは、以下のPowerShellコマンドで確認できます。

((Get-Item $env:programdata'\Microsoft\Search\Data\Applications\Windows\Windows.edb').length/1GB)

それでは、巨大化したWindows Searchインデックス(Windows.edb)ファイルのサイズを削減するための複数の方法を見ていきましょう。

  • Windows検索インデックスをリセットして再構築する方法
  • デフラグによるWindows.edbサイズの削減
  • Windows.edbファイルの削除と再作成
  • Windows.edbファイルを別のドライブへ移動する
  • 更新プログラムの適用によるWindows.edb肥大化の修正
  • Windows.edbファイルが際限なく増え続ける場合の対処法

Windows検索インデックスをリセットして再構築する方法

Windows.edbのサイズを削減する最も基本的な(ただし効果は限定的な)方法は、システム内のファイルを再インデックスすることです。コントロールパネル → インデックスのオプション → 詳細設定を開き、再構築ボタンをクリックします(このダイアログは、Control srchadmin.dllコマンドでも直接開けます)。

しばらく待つと、Windows Searchがシステムドライブおよびその他のインデックス対象場所の完全な再インデックスを完了し、edbファイルのサイズが縮小されます(筆者の環境では再構築に数時間かかりました)。

デフラグによるWindows.edbサイズの削減

Windows Searchのインデックスファイルは、MicrosoftのEDBデータベース形式です。このEDBデータベースは、Exchange管理者にはおなじみのesentutl.exe(Extensible Storage Engine Utility)という標準ツールを使ってデフラグできます。データベースはオフライン状態(使用中でない状態)でデフラグする必要があるため、まずWindows Searchサービスを停止します。一連の操作は、以下のようなbat/cmdスクリプトにまとめられます。

sc config wsearch start=disabled
sc stop wsearch
esentutl.exe /d %ProgramData%\Microsoft\Search\Data\Applications\Windows\Windows.edb
sc config wsearch start=delayed-auto
sc start wsearch

ヒント:デフラグ実行時にはEDBファイルの完全なコピーが作成されるため、ハードディスクに十分な空き容量が必要です。

esentutlは画面上に現在のデフラグの進行状況を表示します。

注意:esentutlコマンド実行後に以下のエラーが表示された場合:

Operation terminated with error -1213 (JET_errPageSizeMismatch, The database page size does not match the engine) after 10.125 seconds.

これは64ビットOSを使用していることを意味するため、x86版のesentutlを使ってデフラグを実行する必要があります。その場合、3番目のコマンドは次のようになります。

"C:\Windows\SysWOW64\esentutl.exe" /d %AllUsersProfile%\Microsoft\Search\Data\Applications\Windows\Windows.edb

筆者の環境では、デフラグ後にWindows.edbファイルのサイズは約30%縮小しました。

Windows.edbファイルの削除と再作成

ディスクの空き容量が逼迫している場合は、Windows.edbファイルを安全に削除できます。この操作で失われるのは検索インデックスのみで、ユーザーデータは一切失われません。Windows.edbファイルを削除するには、Windows Searchサービスを停止し、ファイルを削除してから、サービスを再度開始します。

net stop "Windows Search"
REG ADD "HKLM\SOFTWARE\Microsoft\Windows Search" /v SetupCompletedSuccessfully /t REG_DWORD /d 0 /f
del %PROGRAMDATA%\Microsoft\Search\Data\Applications\Windows\Windows.edb
net start "Windows Search"

レジストリキーHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows SearchのSetupCompletedSuccessfully = 0という値は、次回起動時にWindows Searchサービスへ、現在の設定とインデックスパスのリセット、デフォルトのwsearchパラメータの復元、デフォルトのインデックスパスの追加を指示します。

Windows Searchを再起動すると、バックグラウンドで再インデックス処理が開始され、Windows.edbファイルが再作成されます(完全な再インデックス中はシステムパフォーマンスが低下する可能性があります)。

Windows.edbファイルを別のドライブへ移動する

Windows.edbファイルのサイズが継続的に増大している場合は、Windows Searchのインデックスデータベースを別のドライブ(ボリューム)に移動するのが有効です。こうすることで、検索データベースが急激に増大しても、システムパーティションの空き容量枯渇によるOSクラッシュを防げます。特に、ユーザーがファイルや個人フォルダなどのインデックス対象コンテンツを頻繁に扱うRDSサーバーでは、この対策を行うのが一般的です。

インデックスファイルの場所を変更するには、コントロールパネル → インデックスのオプション → 詳細設定 → インデックスの場所 → 新しい場所で、Windows.edbファイルの新しい保存先パスを指定してOKをクリックします。

その後、Windows Searchサービスを再起動します。

Restart-Service wsearch

更新プログラムの適用によるWindows.edb肥大化の修正

2013年5月に、Windows 8およびWindows Server 2012におけるWindows.edbファイルの継続的な肥大化問題を修正する特別な更新プログラムがリリースされました(この修正は更新プログラムのロールアップKB 2836988に含まれています)。該当するWindowsバージョンでは、この修正プログラムを手動でダウンロードしてインストールすることが推奨されます。なお、この更新プログラムは既存のWindows.edbファイルのサイズを縮小するものではなく、肥大化の原因となるバグを修正するだけである点に注意してください。edbファイルのサイズを縮小するには、前述の方法で検索インデックスを再構築するか、デフラグを実行する必要があります。

その他のWindowsバージョンについても、Windows UpdateまたはWSUS経由で常に最新の累積更新プログラムを適用することをお勧めします。

Windows.edbファイルが際限なく増え続ける場合の対処法

デフラグや検索インデックスの再構築を行った後もWindows.edbファイルが再び肥大化し始める場合は、以下の方法を試してみてください。

  1. Windows 10に組み込まれている「検索とインデックス作成」のトラブルシューティングツールを実行します。コマンド:msdt.exe -ep SystemSettings_Troubleshoot_L2 -id SearchDiagnostic。問題の一覧から「検索またはインデックス作成が遅い」を選択すると、トラブルシューティングウィザードがWindows Searchサービスを正常な状態に戻そうとします。
  2. 必要なコンテンツのみをインデックス対象とします。検索しないアイテムはインデックスから除外しましょう。インデックス設定の「変更」ボタンをクリックし、「インデックスする場所」ウィンドウで、インデックス不要のパスやアプリケーションを無効にします。インデックスパスの設定を変更した後は、毎回検索インデックスを再構築する必要があります(詳細設定 → 再構築)。また、Windows 10/8.1ではWindows 7よりもWindows.edbファイルのサイズがはるかに速く増大することにも注意してください。これは、最近のWindowsバージョンではファイルサイズに関係なくすべてのファイル内容がインデックス化されるのに対し、Windows 7では大きなドキュメントの冒頭部分のみがインデックス化されていたためです。
  3. OutlookをPSTファイルで使用している場合、PSTファイルをインデックス化すると、Windows.edbファイルのサイズはPSTファイルのサイズに比例して増大します。これにより、ディスク容量不足やパフォーマンス低下の問題が発生する可能性があります。この場合、Microsoftはインデックス対象からOutlookを除外することを推奨しています。もちろん、Outlookのローカル検索機能は使えなくなりますが、メールボックスをExchangeサーバーに保存しており、サーバー側で検索インデックスが有効になっていれば、実質的な問題にはなりません。
  4. それでも解決せず、Windows.edbファイルのサイズが増え続ける場合は、wsearchサービスを完全に無効化するか、起動時に検索インデックスをリセットするログオンスクリプトを設定するという選択肢もあります。
  1. Windows 10でGZファイルを開く方法|コマンドプロンプト・7-Zip・オンライン解凍の手順を徹底解説

    大容量のファイルは、保存や共有を簡単かつスピーディーに行うために、RARやZIP形式に圧縮されることが一般的です。同じように、GZもファイルを圧縮するためのアーカイブ形式の一つです。ZIPファイルを目にする機会は多いものの、GZファイルはあまり馴染みがないという方も少なくないでしょう。初めてGZファイルを受け取った場合、「Windows 10でどう開けばいいのか」「Androidスマホでは開けるのか」「オンラインで解凍できるのか」など、さまざまな疑問が浮かぶかもしれません。この記事では、こうした疑問すべてに対する答えをわかりやすく解説します。 GZファイルとは?基本情報をおさらい GZファイル

  2. Windows 10でファイルを暗号化する方法|標準機能とフリーソフト両方の手順を徹底解説

    Windows 10のパソコンでは、ファイルを暗号化して同時にパスワード保護をかけられることをご存知ですか?この機能を活用すれば、許可した相手以外はあなたのプライベートなファイルを開けなくなります。ここで注意したいのは、ファイルの暗号化は単なるロックとは違うという点です。ロックは解除されたりハッキングされたりする恐れがありますが、強力な暗号化を施しておけば、適切なソフトと正しいパスワードを持たない人にとって、そのファイルはただの無意味なデータになります。この記事では、Windows 10のパソコンでファイルを暗号化・復号化する具体的な手順を、2つの方法に分けて詳しく解説します。方法1:Wind