你遇到的 camsvc(Capability Access Manager Service)启动报错 1067,并提示“进程意外终止”,结合你看到的 CapabilityConsentStorage.db 旁边只有 -shm 文件、没有 -wal 文件的现象,基本可以判断是 权限存储数据库损坏,导致服务进程一启动就崩溃。
为什么会这样?
C:\ProgramData\Microsoft\Windows\CapabilityAccessManager\CapabilityConsentStorage.db 是一个 SQLite 数据库,记录着各个应用使用摄像头、麦克风等隐私设备的授权状态。
正常运行时,SQLite 会生成 .db-shm(共享内存)和 .db-wal(预写日志)两个临时文件。
你“关闭服务”可能是强制结束或意外中断,导致数据库处于“脏”状态,.db-wal 丢失,而残存的 .db-shm 文件指向了不存在的日志。服务启动时尝试打开数据库,直接崩溃退出。
修复方案
- 删除损坏的数据库文件
这会清空所有应用的隐私权限记录(应用会像新装一样重新弹窗申请权限),但能直接修复崩溃。
打开文件资源管理器,进入路径(直接复制到地址栏回车):
%ProgramData%\Microsoft\Windows\CapabilityAccessManager
备份(可选):先把这个文件夹里的 CapabilityConsentStorage.db 和 CapabilityConsentStorage.db-shm 复制到桌面,以防万一。
删除:选中 CapabilityConsentStorage.db 以及 CapabilityConsentStorage.db-shm,一起删除(如果有 .db-wal 也删掉)。
以管理员身份打开命令提示符,执行:
cmd
net start camsvc
如果顺利,服务会启动,并且系统会自动重新创建一个干净的 CapabilityConsentStorage.db,之后应用授权会逐步重新建立。
- 确认依赖服务已运行
camsvc 依赖于 Remote Procedure Call (RPC) 和 DCOM Server Process Launcher。如果这些基础服务被关了,也会导致启动失败。
在管理员命令提示符下依次执行,确保它们都是 RUNNING 状态:
cmd
sc query RpcSs
sc query DcomLaunch
如果某个状态是 STOPPED,先启动它:
cmd
net start RpcSs
net start DcomLaunch
然后再尝试启动 camsvc。
- 检查服务的“登录”账户
按 Win+R,输入 services.msc 回车。
找到 Capability Access Manager Service,双击打开。
切换到 “登录” 选项卡,确保选中 “本地系统账户”,并勾选 “允许服务与桌面交互” 即可(通常默认就是本地系统)。
- 系统文件修复(如果以上都不行)
在管理员命令提示符中依次运行:
cmd
DISM /Online /Cleanup-Image /RestoreHealth
sfc /scannow
完成后重启电脑,再尝试启动服务。
这个修复方案仅作参考