我正在将文件和文件夹从 Windows 2003 32 位上的文件共享复制到 Windows 2008 R2 64 位上的新文件共享。我一直在使用 Robocopy 测试某些文件夹,并且只能成功复制唯一的安全设置,例如只能访问该文件夹的特定用户,但不能访问所有用户。(即系统、用户)
我的问题是是否有实用程序或方法可以按原样复制确切的设置。包括旧服务器上存在的所有权限。我能够从父级在新共享上创建权限(系统、服务器管理员等),但这会授予我想要限制的文件夹的权限。
我希望这是有道理的。
答案1
的默认值robocopy
是DAT
。这意味着它会复制数据(文件内容本身)、属性(Hidden,年代系统,Read-only 等)和时间戳。如果交给它 DATSOU,其中包括安全 ACL、审计信息和所有权。这是直接从文档中复制过来的,在精彩的 ss64 上:
/COPY:copyflag[s] : What to COPY (default is /COPY:DAT)
(copyflags : D=Data, A=Attributes, T=Timestamps
S=Security=NTFS ACLs, O=Owner info, U=aUditing info).
/SEC : Copy files with SECurity (equivalent to /COPY:DATS).
/DCOPY:T : Copy Directory Timestamps. ##
/COPYALL : Copy ALL file info (equivalent to /COPY:DATSOU).
/NOCOPY : Copy NO file info (useful with /PURGE).
那么为什么 DATSOU 对你不起作用?这可能有助于我们弄清楚你到底在寻找什么?正如你提到的,有一些限制。我们遇到了类似的问题,目录没有继承权限,这就是你描述的问题。你可以通过解析来自设置ACL,这是我见过的最强大和最危险的 Windows 实用程序。不过,这很麻烦。
解决方案二,取出可能非常大的 wim,然后将其应用到新驱动器上imagex
。没有规定它必须是 Windows 系统分区;它可以是任意文件组。我没有尝试过这个,所以我相信其他人可以根据经验拒绝这个想法。
解决方案三,考虑 DFS 复制。如果您可以保留旧共享,则可以使用DFS 复制只需将一个共享 UNC 路径上的文件请求重定向到另一个。我最近成功地做到了这一点,它为我省去了很多麻烦。不过我不知道你的用例。
答案2
首先,请注意,我的所有经验仅限于 Windows 2003。
我认为,实现此目的的唯一方法是通过备份和恢复 API,因此您需要使用该 API 的程序。在 Windows 2003 上,您可以使用内置备份程序 Microsoft Backup 或 Backup Exec 之类的程序。