Robocopy 权限被拒绝

Edo*_*oft 12 networking windows-7 troubleshooting file-management robocopy

Robocopy 预装了 Windows 7。我过去用过很多次。我尝试将文件夹复制到远程共享

robocopy c:\source "\\server\share\path" /s /r:2 /w:2` 
Run Code Online (Sandbox Code Playgroud)

结果我被拒绝了。使用资源管理器,我可以将文件复制到此共享。我打开了一个具有管理员权限的命令提示符,结果相同。该共享是公共读/写。

编辑我已成功将驱动器号映射到共享,但 robocopy 仍然失败

编辑 我添加了 /B 开关但没有成功。确切的错误是:

2009/09/26 20:43:14 ERROR 5 (0x00000005) 
    Accessing Destination Directory \\drobo\Drobo\fotos\__NEW\Ericsson\
Run Code Online (Sandbox Code Playgroud)

har*_*ymc 13

这里引用:

就我而言,我一开始完全控制源共享和目标共享。问题是 Robocopy 在开始递归子目录之前将目标共享上的 ACL 重置为空值(没有人拥有权限)。经过一些快速测试,我的结论是 Robocopy 不处理继承的权限。假设您将 C:\Share1 复制到 D:\,并且 C:\Share1 是从 C:\ 根目录继承其权限,它实际上没有明确的 ACL。因此,当您复制其 ACL 时,您实际上是在复制……什么也没有。通过将一个空的 ACL 复制到您的目的地,您的权限在复制的第一步中被删除,并且所有后续写入共享失败并显示错误 5。

这仅在您从使用继承权限访问的源和您在不使用继承权限访问的目标中复制时才会出现问题。如果您将 C:\(在其 ACL 中明确包含您)复制到 D:\,则没有问题。如果这确实是您的问题,您可以通过将您自己显式添加到具有完全控制权的源 ACL 来解决它。当副本运行时,您的 ACL 条目将复制到目标,并且可以写入后续文件副本。复制完成后,您可以撤消更改(在源和目标上)。

如果上述问题仍然存在,您可能需要考虑尝试 /B 开关,它会尝试使用您作为备份操作员的权限来备份文件。这将允许您复制原本无法复制的文件,例如,如果您不在目标共享的 ACL 上。Robocopy 默认尝试一个可重启的副本。通过放弃可重新启动的副本,最坏的情况是您会在发生中断时丢失当前正在传输的文件。下一遍将从头开始重新启动该文件,而不是中途重新启动。

希望有帮助。以下是 Microsoft 的 Robocopy 文档中关于 /B 开关的引用:

引用:

如果您将 NTFS 安全信息 (ACL) 与文件数据一起复制,则可以复制您具有读访问权限但没有写访问权限的文件。在复制一次此类文件并应用 ACL 后,您可能会发现再次尝试复制该文件时会出现“拒绝访问”错误。在这种情况下,您应该使用 /B 或 /ZB 开关在备份模式下复制文件。

/B 复制所有具有备份语义的文件(备份模式)。/ZB 首先尝试在可重启模式下复制文件(以获得更大的弹性),但如果失败并出现“拒绝访问”错误,它会自动使用备份模式重试复制。


And*_*ech 5

尝试使用Backup标志复制文件:

/B : 在备份模式下复制文件。