备份写入: access denied on reparse points

标签 backup reparsepoint

我正在使用BackupRead和BackupWrite来实现2个文件夹之间的文件同步。

我可以在文件和文件夹上使用它们,没有任何问题。但是,当我想在重新分析点上使用它们时,BackupWrite 会失败,并出现访问被拒绝错误。

使用 BackupRead 检索原始重分析点时不会出现错误。缓冲区有 2 个流:一个用于安全数据,一个用于重新分析数据。我可以在后者中看到重分析点的目标。 我尝试创建的文件不存在并且 FILE_FLAG_BACKUP_SEMANTICS | FILE_FLAG_OPEN_REPARSE_POINT 被传递给 CreateFile。

所以,我的问题是:如何打开文件以便 BackupWrite 成功恢复重解析点?

最佳答案

我终于发现了两个问题:

  • 如果重解析点是目录,则必须首先将新的重解析点创建为目录。

  • 即使已授予管理权限,我们也需要为当前进程启用“SeRestorePrivilege”或“SeCreateSymbolicLinkPrivilege”(通过 OpenProcessToken、LookupPrivilegeValue 和 AdjustTokenPrivileges)。

关于备份写入: access denied on reparse points,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30414100/

相关文章:

backup - Mysql备份策略

winapi - NTFS Junctions,难以理解 API

winapi - 获取 Microsoft OneDrive 管理的文件的完整文件属性

c# - 检测符号链接(symbolic link)、连接点、挂载点和硬链接(hard link)

postgresql - 如何检查postgresql备份是否成功?

java - 带有 Java : Is there a limit? 的 Zip 文件

sql-server - 使用 SQL Azure 时间点还原进行还原的正确方法是什么?

postgresql - Postgres 在克隆的 VM 上使用 WAL 恢复/更新而不是使用 basebackup