Назад | Перейти на главную страницу

Копирование через NTFS ACL с одного автономного сервера на другой

У нас есть две машины в одном домене: машина 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 мог бы сделать это за вас.