У нас есть две машины в одном домене: машина A (Windows 2003) и машина B (Windows 2003). У обоих есть набор файлов, которые идентичны и были сохранены идентичными с помощью запланированного процесса. Однако машина A теперь отключена (то есть не в сети, но у меня все еще есть физический доступ к машине), и мы понимаем, что списки ACL не идентичны.
Каким будет наиболее элегантный способ скопировать ACL, когда машина A отключена?
Предполагая, что ваш набор данных идентичен на обеих машинах, за исключением 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 - копировать подкаталоги, в том числе Пустые.
/ COPY: S - копировать NTFS acls
/ TEE - вывод на экран и в файл журнала
/ NDL - не включать имя каталога в журнал
/ LOG +: добавить в файл журнала
Возможно, вам придется использовать кавычки, если в именах папок есть пробелы.
Если я правильно понимаю ваш вопрос xcopy
с участием /o
мог бы сделать это за вас.