robocopy迁移文件服务器并完整保留ntfs权限,须以管理员身份运行,使用/mir /copyall /dcopy:t /sec /r:0 /w:0组合参数实现镜像同步与安全上下文复制,并通过icacls导出比对源目标acl快照验证一致性。
用 robocopy 迁移文件服务器并完整保留 ntfs 权限,关键在于正确组合参数、以管理员身份运行,并确保目标环境已就绪。它不是简单复制文件,而是同步整个安全上下文。
必须使用的权限相关参数
Robocopy 默认不复制权限,需显式指定:
- /COPYALL:复制全部属性(数据、时间戳、属性、NTFS ACL、所有者、审核项),等价于 /COPY:DATSOU
- /SEC:仅复制安全性(ACL + 时间戳 + 数据 + 属性),等价于 /COPY:DATS;若只要求权限+基础信息,可用它替代 /COPYALL
- /DCOPY:T:额外保留目录本身的时间戳(文件夹创建/修改时间),对审计和一致性检查有帮助
- /R:0 /W:0:禁用重试,避免因个别文件卡住而中断整体流程(适合网络稳定、预检过的环境)
推荐的完整迁移命令格式
适用于跨服务器或跨卷的生产级迁移:
robocopy "OldServerShare" "D:NewShare" /MIR /COPYALL /DCOPY:T /SEC /R:0 /W:0 /LOG:C:logsmigrate.log
说明:
- /MIR 表示镜像模式:同步后目标与源完全一致,自动删除目标中源已不存在的文件或文件夹
- 源路径支持 UNC(如 \OldServerShare),目标为本地路径(如 D:NewShare)即可
- /LOG 记录全过程,便于事后核查失败项或比对进度
- 务必在管理员权限的 CMD 或 PowerShell中执行,否则 NTFS 权限写入会失败
迁移后验证权限是否真正保留
不能只看界面显示,要用系统级命令比对原始安全描述符:
- 在源服务器上导出权限快照:icacls "D:OldShare" /t > C:ackupsource_acl.txt
- 在目标服务器上导出对应路径权限:icacls "D:NewShare" /t > C:ackup arget_acl.txt
- 用记事本或 fc source_acl.txt target_acl.txt 对比内容——重点看每行末尾的 (OI)(CI)(继承标记)和用户/SID 条目是否一致
- 特别注意:如果目标路径与备份时路径不一致(如盘符或大小写不同),icacls /restore 将无法使用,所以迁移前确认路径结构统一很重要
常见问题与应对建议
遇到权限“看似存在但实际无效”时,优先排查以下几点:
- 目标卷必须是NTFS 格式,FAT32 不支持 ACL
- 执行账户需对源有读取+遍历+读取属性+读取扩展属性+读取权限,对目标有修改+更改权限+取得所有权
- 若源是共享文件夹,还需确认共享权限本身已另行配置(Robocopy 不处理 SMB 共享设置,只管 NTFS 层)
- 首次迁移后,建议先停用旧共享,测试新路径下各用户访问是否正常,再批量切换映射或 DNS











