我们在同一个域上有两台机器:机器A(Windows 2003)和机器B(Windows 2003)。 两者都有一组相同的文件,并通过预定的过程保持相同。 但是,机器A现在是脱机的(即不在networking上,但是我仍然可以物理访问机器),并且我们意识到ACL是不相同的。
机器A处于脱机状态时,复制ACL的最优雅的方法是什么?
假设你的数据集在两台机器上是相同的,除了ACL,你可以这样做:
icacls c:\path\to\data\* /save ACLData /T
将“ACLData”文件复制到目标机器,然后:
icacls c:\path\to\data /restore ACLData
这将复制ACL(以及ACL),假设数据结构是相同的,并且您有权这样做。
尝试这个:
SET SOURCEFOLDER=\\server\share\folder SET DESTFOLDER=C:\folder REM copy all security ACLs ROBOCOPY "%SOURCEFOLDER%" "%DESTFOLDER%" /IS /E /COPY:S /NDL /TEE /LOG+:C:\temp\robocopy.log
/ IS – 包含“相同”的文件
/ E – 复制子目录,包括空的。
/复制:S – 复制NTFS acls
/ TEE – 输出到屏幕和日志文件
/ NDL – 不要在日志中包含目录名称
/ LOG +:附加到日志文件
如果文件夹名称中有空格,则可能需要使用引号。
如果我正确理解你的问题xcopy与/o可以为你做这个。