Windows 11 を使用していると、次の場所にある CapabilityAccessManager.db-wal というファイルのサイズが増えていることがあります。
C:\ProgramData\Microsoft\Windows\CapabilityAccessManager\
環境によっては数百 MB、あるいはそれ以上に増えているという報告もあり、
- 「このファイルは何なのか」
- 「位置情報の履歴なのか」
- 「削除しても問題ないのか」
と気になる方もいると思います。
今回、実際に Windows 11 上で CapabilityAccessManager.db-wal の内容を解析し、アプリの位置情報利用前後でどのようなデータが追加されるのかを確認しました。
その結果、CapabilityAccessManager.db-wal には、単なる位置情報だけではなく、Windows がアプリの権限利用を管理するための履歴が記録されていることが確認できました。
CapabilityAccessManager.db-wal とは
CapabilityAccessManager.db-wal は、Windows の「Capability Access Manager」が使用するデータベースの記録用ファイルです。
Capability Access Manager は、アプリが次のような Windows の機能へアクセスする際の管理を行っています。
位置情報、カメラ、マイクなど、プライバシーに関係する機能が代表例です。
内部では SQLite というデータベースが使用されており、CapabilityAccessManager.db-wal は、そのデータベースへ変更を書き込むための WAL(Write-Ahead Log)と呼ばれるファイルです。
WAL は、データベースの更新内容をいったん別のファイルに記録し、後からデータベース本体へ反映する仕組みです。SQLite でも正式に採用されている方式です。
そのため、
CapabilityAccessManager.db
CapabilityAccessManager.db-wal
CapabilityAccessManager.db-shm
という複数のファイルが同じフォルダーに存在します。
CapabilityAccessManager.db-wal があること自体は異常ではありません。
実際に何が記録されているのかを検証
今回、Windows 11 で位置情報を使用する「天気」アプリを使い、アプリを起動する前と後で CapabilityAccessManager.db-wal を比較しました。
操作前は 18個だった記録単位が、操作後には 26個へ増えていました。
つまり、天気アプリを使用したあとに、8個の新しいデータが CapabilityAccessManager.db-wal へ追加されたことになります。
ファイルサイズも、
74,192 バイト
↓
107,152 バイト
へ増加しており、差は 32,960 バイトでした。
内部の 1 単位は 4,120 バイトだったため、
4,120 × 8 = 32,960 バイト
となり、実際の増加量と完全に一致しました。
「天気」アプリの情報が新しく記録された
追加されたデータを解析したところ、次の文字列が新しく保存されていました。
Microsoft.BingWeather_8wekyb3d8bbwe
これは Windows の「天気」アプリを識別するための名前です。
さらに別のデータには、「天気」というアプリ名も保存されていました。
データベース全体を復元して確認したところ、それぞれ次の場所へ保存されていました。
| 内容 | 保存されていた情報 |
|---|---|
| アプリを識別する名前 | Microsoft.BingWeather_8wekyb3d8bbwe |
| アプリ名 | 天気 |
| 使用した機能 | location |
| 利用開始時刻 | 記録あり |
| 利用終了時刻 | 記録あり |
| アクセスが拒否されたか | 記録あり |
実際のデータベースでは、PackageFamilyNames に天気アプリの識別名、AppNames に「天気」、Capabilities に location が保存されていました。
位置情報を使った時刻も記録されていた
さらに詳しく調べると、アプリの使用履歴を保存する PackagedUsageHistory という項目がありました。
ここには、
LastUsedTimeStart
LastUsedTimeStop
AccessBlocked
Capability
PackageFamilyName
AppName
などの情報が保存されています。
今回の「天気」アプリでは、位置情報を利用した開始時刻と終了時刻が記録されていました。
解析した値を時刻へ変換すると、およそ次の内容でした。
利用開始
2026/10/30 04:41:33
利用終了
2026/10/30 04:41:38
約 5秒間、位置情報を使用した記録です。
同じ記録では、Capability = 1となっていましたが、Capabilities の ID 1 は、locationでした。
つまり今回の検証では、天気アプリが位置情報を使用した履歴が CapabilityAccessManager.db-wal に記録された
ことを確認できました。
CapabilityAccessManager.db-wal は「位置情報の履歴ファイル」なのか
ここは少し注意が必要です。
今回の検証では位置情報の利用履歴が記録されていましたが、
CapabilityAccessManager.db-wal = 位置情報専用の履歴ファイル
という意味ではありません。
内部のデータベースには、
Capabilities
PackageFamilyNames
Users
AppNames
AccessGUIDs
など、複数の管理項目が存在しています。
また、Windows の Capability Access Manager 自体は、位置情報だけでなく、アプリが利用するさまざまな権限を管理しています。
そのため、より正確には、
CapabilityAccessManager.db-wal は、Windows がアプリなどの権限利用を管理するために使用するデータベースの記録ファイル
と考えるのが適切です。
今回確認できた location は、その中の一つです。
位置情報をオンにするだけでは増えなかった
今回の検証では、Windows の「位置情報サービス」をオンにしただけでは、CapabilityAccessManager.db-wal のサイズは変化しませんでした。
また、「アプリに位置情報へのアクセスを許可する」をオンにしただけでも変化しませんでした。
一方で、「天気」アプリに位置情報を許可して実際に起動したところ、CapabilityAccessManager.db-wal のサイズが増加しました。
さらに、位置情報を許可しない状態で天気アプリを起動した場合には、同じ増加は確認できませんでした。
この結果から、少なくとも今回の環境では、設定を変更しただけではなく、アプリが実際に機能へアクセスした際に利用履歴が追加される動作が確認できました。
CapabilityConsentStorage.db-wal との違い
同じフォルダーには、
CapabilityConsentStorage.db-wal
という似た名前のファイルもあります。
今回の検証では、位置情報サービスやアプリの位置情報許可をオン・オフした際には、主にこちらのファイルが更新されました。
一方で、天気アプリが実際に位置情報を利用した際には、CapabilityAccessManager.db-wal に利用履歴が追加されました。
そのため今回の結果から見ると、
CapabilityConsentStorage.db-wal は「許可設定」に関する情報、
CapabilityAccessManager.db-wal は「実際の利用履歴」に関する情報、
を扱っている可能性があります。
ただし、これは今回確認できた動作から判断したもので、Microsoft がそれぞれの内部仕様を詳しく公開しているわけではありません。
ファイルサイズが増えるのは異常なのか
CapabilityAccessManager.db-wal は利用履歴を書き込むファイルなので、ある程度サイズが増えること自体は不自然ではありません。
ただし、どの程度のサイズが正常なのかについて、Microsoft は具体的な基準を公開していません。
Microsoft は 2026年 6月の Windows Update で、
CapabilityAccessManager.db-wal のディスク領域の使用量を改善
したことを公表しています。
つまり Microsoft 側でも、このファイルのディスク使用量に関する改善を行っていることが分かります。
ただし、この修正内容は、「このファイルは増えなくなった」という意味ではありません。
今回の検証でも、Windows Update 適用後の環境で実際にサイズは増加しました。
正常な利用による増加と、異常に肥大化する現象は分けて考える必要があります。
自動メンテナンスまたは手動メンテナンスで WAL を整理できる
CapabilityAccessManager.db-wal のサイズが大きくなっている場合、ファイルを直接削除する前に Windows のメンテナンスを実行してみてください。
筆者の環境で手動メンテナンスを実行したところ、次のように変化しました。
CapabilityAccessManager.db-wal:181 KB → 0 バイトCapabilityConsentStorage.db-wal:152 KB → 0 バイト
同時にデータベース本体のサイズが増えていたため、WAL にたまっていた内容がデータベース本体へ反映され、WAL が整理されたものと考えられます。
なお、筆者の環境では位置情報を普段は無効にしており、今回の検証では天気アプリなどを数回使用した程度だったため、CapabilityAccessManager.db-wal のサイズは 181 KBと比較的小さい状態でした。
一方、読者の方の環境では約 500 MBまで増えていましたが、同様にメンテナンス実行後は 0 バイトになったとの報告をいただいています。
さらに、タスク スケジューラの次のタスクを直接実行したところ、CapabilityAccessManager.db-wal が 0 バイトになりました。
Microsoft\Windows\capabilityaccessmanager\maintenancetasks
このタスクでは CapabilityAccessManager.dll の CapabilityAccessManagerDoStoreMaintenance が実行されるため、CapabilityAccessManager.db-wal の整理処理に直接関係していることを確認できました。
MaintenanceDisabled が設定されている場合はメンテナンスを実行できない
自動メンテナンスを無効化するツールなどでは、次のレジストリキーに MaintenanceDisabled が追加される場合があります。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\Maintenance
レジストリの操作を間違えると、システムが起動できなくなるなどの不具合が起きる可能性があります。事前にシステムの復元などでバックアップを取り、自己責任で行うようお願いします。
- システムの復元ポイント作成方法及び復元方法
- レジストリエディターの開き方及びバックアップ方法
- Windows 11/10 レジストリの予備知識|概念・開き方・内部構成
- Windows 11レジストリの所有権を取得し、アクセス許可を変更する方法
MaintenanceDisabled の値が 1 に設定されている状態では、自動メンテナンスだけでなく、コントロール パネルの「メンテナンスの開始」から手動で実行することもできません。
筆者の環境で確認したところ、MaintenanceDisabled=1 の状態では、タスク スケジューラから capabilityaccessmanager\maintenancetasks を直接実行した場合や、手動メンテナンス用のコマンドを実行した場合にもメンテナンス処理は行われませんでした。
MaintenanceDisabled を 0 に変更するか、この値を削除すると、自動メンテナンスと手動メンテナンスを再び実行できるようになります。
そのため、CapabilityAccessManager.db-wal が大きくなっており、メンテナンスを実行してもサイズが変化しない場合は、MaintenanceDisabled が 1 に設定されていないか確認してみてください。
自動メンテナンスや手動メンテナンスの実行方法については、以下の記事で詳しく解説しています。
なお、すべての環境で必ず 0 バイトになるとは限りません。ただし、Windows 自身のメンテナンス機能によって WAL を整理できる場合があるため、CapabilityAccessManager.db-wal が大きくなっている場合は、ファイルを直接削除するより先に試すことをおすすめします。くなっている場合は、ファイルを直接削除するより先に試すことをおすすめします。
数百 MB や数 GB まで増えている場合
数百 KB や数 MB 程度の増加であれば、アプリの利用履歴によって増えている可能性があります。
一方、数百 MB、数 GB、数十 GB といった非常に大きなサイズまで増え続けている場合は、通常の利用履歴だけではなく、WAL の整理処理が正常に行われていない可能性も考えられます。
ただし、「何 MB 以上なら異常」という明確な基準はありません。
ファイルサイズだけを見るのではなく、「短時間で増え続けているか」を確認する方が重要です。
例えば 10分ごと、1時間ごとにサイズを記録すると、増加が継続しているか確認できます。
CapabilityAccessManager.db-wal は削除してよい?
CapabilityAccessManager.db-wal は、次のフォルダーに保存されています。
C:\ProgramData\Microsoft\Windows\CapabilityAccessManager\
このフォルダーは、通常のユーザー操作では自由にアクセスできる場所ではなく、内容を変更するには管理者権限やアクセス許可の変更が必要になる場合があります。
つまり、Windows がシステム内部で使用するために保護している場所です。
そのため、CapabilityAccessManager.db-wal のサイズが大きいという理由だけで、一般ユーザーがアクセス許可を変更して手動で削除することはおすすめしません。
また、同じフォルダーには次の関連ファイルがあります。
CapabilityAccessManager.dbCapabilityAccessManager.db-walCapabilityAccessManager.db-shm
これらは SQLite のデータベースとして連携して使用されているため、Windows の動作中に一部のファイルだけを削除すると、データベースの整合性に影響する可能性があります。
SQLite の公式ドキュメントでも、WAL ファイルはデータベースの状態を構成する一部であり、データベース本体から切り離すとデータが失われたり、データベースが破損したりする可能性があると説明されています。
削除するメリット
CapabilityAccessManager.db-wal が異常に肥大化している場合は、削除することで使用していたディスク容量を一時的に空けられる可能性があります。
特に数 GB、数十 GBまで増えている環境では、空き容量を確保できるという点だけを見ればメリットがあります。
削除するデメリット
一方で、次のようなデメリットがあります。
- Windows が管理しているアプリの利用履歴などが失われる可能性がある
- 関連するデータベースとの整合性が崩れる可能性がある
- ファイルが再作成されても、根本的な原因が解決していなければ再び増える可能性がある
- 保護されたフォルダーのアクセス許可を変更する必要が生じる場合がある
- 誤って別のデータベースファイルまで削除する危険がある
特に重要なのは、削除して容量を空けても、なぜファイルが増え続けたのかという原因そのものは解決しないという点です。
今回の検証では、Windows のメンテナンスを実行することで CapabilityAccessManager.db-wal を削除せずに 0 バイトまで整理できることを確認しました。
そのため、CapabilityAccessManager.db-wal が大きくなっている場合は、手動で削除する前に、まず Windows Update を最新の状態にしたうえで、自動メンテナンスまたは手動メンテナンスを実行してみることをおすすめします。
メンテナンスを実行してもファイルサイズが減らず、その後も短時間で数 GB単位に増え続ける場合は、別の原因がないか調べる方が安全です。
数百 MB程度あるという理由だけで、アクセス許可を変更してファイルを直接削除することはおすすめしません。
参考資料
Microsoft は 2026年 6月の Windows 11 24H2 / 25H2 向け更新プログラム KB5095093 で、CapabilityAccessManager.db-wal のディスク領域使用量を改善したことを案内しています。

コメント