Windows VSS:两个卷影副本之间的区别?

Posted

技术标签:

【中文标题】Windows VSS:两个卷影副本之间的区别?【英文标题】:Windows VSS: difference between two shadow copies? 【发布时间】:2012-07-03 14:15:26 【问题描述】:

我正在使用 VSS api 创建卷的一些卷影副本,然后使用它们的 UNC 路径访问它们。 是否有可能获得在两个连续阴影之间发生变化的某种事物的列表?

执行此操作的明显方法是检查卷中的所有文件并检查更改,但必须有一种更简单的方法来执行此操作,因为 VSS 的主要功能之一是它保存信息的增量和只保存更改的内容。

【问题讨论】:

您应该可以使用更改日志来执行此操作。我不确定的唯一步骤是卷影副本的行为是否像真实卷,即您是否可以打开卷影副本的卷句柄并发出 FSCTL 命令。无论如何,请参阅 ***.com/a/7459109/886887 获取一些示例代码以帮助您入门。 您是否只对没有第三方 VSS 提供商的情况感兴趣,还是该解决方案需要适用于所有情况? @Harry Johnston 添加新的提供商可能是一种选择。我怎么做?不需要重启吗? 我不是建议你写一个提供者,我看不出它会有什么帮助。如果所讨论的卷位于某种阵列或其他具有内置卷影复制支持的硬件上,通常会(或可能)存在第三方提供商。如果您的软件需要支持这种情况,则您不能使用任何未记录的功能,而必须坚持使用已记录的 API,因此答案是“不,VSS 无法做到这一点”。如果您不需要支持第三方提供商,那么可能会有一些未记录的解决方案。 为了未来读者的利益,避免混淆:我相信@Max 将 VSS 解释为 Visual SourceSafe(源代码控制系统,因此与 Git 进行比较),而 OP 则在谈论卷快照服务(主要由备份软件使用)。 【参考方案1】:

将 WinMerge 等第三方软件与卷影副本 UNC 路径一起使用 http://winmerge.org/

这将提供一个用于比较的 GUI

例如,使用“C:\”,与“\\localhost\C$\@GMT-2017.08.24-18.07.46”

当然,输入有效的 UNC 路径以与卷影副本的日期和时间一致。

【讨论】:

以上是关于Windows VSS:两个卷影副本之间的区别?的主要内容,如果未能解决你的问题,请参考以下文章

在 PowerShell 中使用“备份”上下文创建卷影副本

Windows 卷影复制错误:2155348129

C 中的卷影复制服务 (VSS) 示例?

需要在 32/64 位 QT C++ 程序中使用卷影复制服务

使用 app.config 配置卷影复制

如何删除Windows Server backup 的备份卷