如何从卷影复制(VSS)备份中排除指定文件和文件夹
如何从卷影复制(VSS)备份中排除指定文件和文件夹
我完全理解你的困扰——启用VSS后,那些无关的文件和文件夹不仅占用宝贵的存储,还拖慢备份速度,直接删除又怕影响其他快照里的历史文件。针对你使用的Windows Server 2012 R2环境,我给你梳理几个实用的解决方案,以及需要注意的最佳实践:
可行的排除方法
方法1:利用FilesNotToSnapshot注册表项
虽然微软文档标注这个项主要供开发者测试使用,但在生产环境中很多管理员都在稳定使用它来排除VSS快照中的内容,对你的场景也完全适用。具体步骤如下:
- 以管理员身份打开注册表编辑器:按下
Win+R组合键,输入regedit后回车,确认用户账户控制提示。 - 导航到目标路径:依次展开到
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VSS\Settings - 创建/编辑多字符串值:
- 如果
Settings项下方没有FilesNotToSnapshot这个值,右键点击Settings,选择「新建」→「多字符串值」,命名为FilesNotToSnapshot。 - 双击这个值,在弹出的编辑窗口中,每行输入一个要排除的路径,支持绝对路径和通配符,例如:
C:\Temp\LargeLogs D:\*.tmp E:\Backup\OldArchives\*
- 如果
- 重启VSS服务生效:
- 打开管理员权限的命令提示符,依次运行以下命令:
net stop vss net start vss - 或者在「服务」管理器中找到「Volume Shadow Copy」服务,右键选择「重启」。
- 打开管理员权限的命令提示符,依次运行以下命令:
方法2:针对文件共享VSS提供器的补充配置
如果你主要使用的是Microsoft File Share Shadow Copy provider,除了上面的注册表方法,还可以通过文件服务器资源管理器做更精细化的控制:
- 打开「文件服务器资源管理器」,定位到需要配置的共享文件夹。
- 右键点击共享文件夹,选择「属性」→「配额」标签,创建自定义配额模板,设置排除特定文件类型或文件夹的规则。
- 这个方法更适合针对共享资源做批量排除,和注册表项配合使用效果更好。
关键最佳实践
- 先测试再部署:设置好排除规则后,手动创建一个快照验证效果,运行命令
vssadmin create shadow /for=X:(X是你的盘符),然后挂载快照检查是否已排除目标文件。 - 避免排除系统关键路径:不要排除
C:\Windows、C:\Program Files、C:\ProgramData等系统核心文件夹,否则可能导致系统恢复失败。 - 记录排除规则:把你设置的所有排除路径整理成文档,方便后续服务器维护、迁移或重新配置VSS时参考。
- 定期监控快照大小:设置排除后,观察几次快照的生成大小,确认存储空间确实得到了节省,排除规则生效。
- 谨慎使用通配符:通配符(如
*.tmp)会批量排除一类文件,确保这些文件确实不需要备份,避免误删重要内容。
备注:内容来源于stack exchange,提问作者forumresearcher007




