Win10
 Windows.edb は Windows Search インデックス データベースです。インデックス作成は、プロセスによってバックグラウンドで実行されますが、システム内のファイルが多いほど、Windows.edbファイルのサイズが大きくなります。場合によっては、数十または数百GBまで成長し、システムドライブ上のすべての空き領域を占有することがあります。今回はこのWindows.edbを減らす方法をご紹介します。
 Windows.edb ファイルは非表示で、既定ではフォルダー C:\ProgramData\Microsoft\Search\Data\Applications\Windows\ に格納されます。


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

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

1.ファイルインデックスの再作成

 Windows.edb のサイズを小さくする最も適切ですが、あまり効果が期待できない方法でシステム内のファイルのインデックスを再作成があります。
 これを行うには、コントロールパネル -> インデックス作成オプション -> 詳細設定 -> [再構築] をクリックします 
 Windows 検索によってシステム ドライブ (およびその他のインデックスが作成された場所) 上のデータの完全なインデックス再作成が完了し、edb ファイルのサイズが縮小されます 。ただし、コンピューターで検索インデックスを再構築するのに数時間かかります。

2.sentutl.exe 使用した Windows.edb のサイズの削減

 EDB データベースは、データベースを維持するための標準ツールである esentutl.exe を使用して最適化することが出来ます。データベースはオフラインで最適化されるため 、最初に Widows Search サービスを停止する必要があります。

下記のコマンドをメモ帳などに貼り付け、batファイルで実行します。

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 は、現在の EDB ファイルの最適化の進行状況を画面に表示します。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 バージョンを使用する必要があります。この場合、先ほどのbatファイルの3 番目のコマンドを次のコマンドに書き換えます。

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


3.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"

このコマンドはレジストリ パラメーター SetupCompletedSuccessful = 0 のレジストリ キーを変更しています。HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Search の値を指定すると、Windows Search サービスは次回の開始時に現在の設定とインデックス作成パスをリセットし、既定の wsearch パラメーターを復元し、既定のインデックス作成パスを追加します。

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

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

 Windows.edbファイルのサイズが絶えず増加している場合は、Windows検索のインデックスデータベースを別のドライブ(ボリューム)に移動することをお勧めします。検索データベースが急激に増加しても、システム パーティションの空き領域の枯渇による OS クラッシュは発生しません。原則として、ユーザーがファイル、個人用フォルダー、およびその他のインデックス付きコンテンツをアクティブに操作する RDS サーバーで実行する必要があります。

インデックス ファイルの場所を変更するには、コントロール パネル -> インデックス オプション -> 詳細設定 -> インデックスの場所-> [新しい場所] に移動し、Windows.edb ファイルの新しい場所へのパスを指定して [OK] をクリックします。

Windows 検索サービスを再起動します。
Restart-Service wsearch