windows - Microsoft VSHADOW.EXE 卷影副本包含锁定的文件?

标签 windows windows-vista volume-shadow-service shadow-copy locked-files

我一直在使用 VSS 编写备份程序,并从 Windows SDK 6.1 示例中的 VSHADOW.EXE 着手。它通常有效,但我惊讶地发现某些文件仍然锁定在它创建的卷影副本中,例如

C:\Users\Felix\NtUser.dat
C:\Users\Felix\NtUser.dat.log1
C:\Users\Felix\AppData\Local\Microsoft\Windows\UsrClass.dat
C:\Users\Felix\AppData\Local\Microsoft\Windows\UsrClass.dat.log1
...

访问卷影副本中的这些文件(使用 CreateFileExCopyFileEx 或使用 Total Commander 或任何其他工具)通常给我一个错误 32(进程无法访问该文件,因为它正被另一个进程使用)。它似乎是任意发生的。怎么可能?

我之前的编辑(事件日志消息)原来不是这个问题的核心,因为我修复了它但没有帮助。

最佳答案

有问题的文件原来是指向其他锁定文件的符号链接(symbolic link)。卷影副本中的各个文件也是符号链接(symbolic link),指向原始硬盘上的锁定文件。要解决这个问题,必须解析符号链接(symbolic link)并找到它指向的文件,然后这个文件必须位于卷影副本中。

关于windows - Microsoft VSHADOW.EXE 卷影副本包含锁定的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7407954/

相关文章:

c# - 注册表访问问题

c++ - 编译 vshadow 时出现链接器错误,卷影复制服务 SDK 的一部分

python - python中的一致备份

svn - Hudson 无法访问 Subversion(svn :connection refused by server)

c++ - 构建用于发布的卷影服务应用程序

c++ - C++ 中的字符串类型 : how to convert from LPWSTR to LPSTR?

java - 简单java程序的命令提示符 "access denied"错误

windows - 32 位和 64 位版本的 Windows 操作系统的页面大小是多少?

在 Cygwin 软件包列表中找不到 Openssl

windows-vista - 在 Vista 上配色方案不是 Aero 时出现重影窗口