Копировать права доступа к файлам из одного каталога в другой

17

В выходные я скопировал данные нашей компании с одного жесткого диска на другой больший. Я думал, что разрешение скопировал бы через, но они не сделали.

Каков наилучший (и самый быстрый) способ скопировать разрешение, которое было первоначально установлено для моих новых данных, без необходимости повторного копирования всех данных? Мои пользователи теперь получают доступ к данным, поэтому не хотят копировать данные, поскольку изменения могут быть потеряны.

Данные размещены на Windows Server 2008 R2

Саймон Фостер
источник

Ответы:

17

Я думаю, что это сделает работу:

robocopy source destination /E /COPY:SOU /xo /xn /xc /xx /LOG+:F:\Sec.log.

Копии « SOU »: S = информация о безопасности (ACL NTFS), O = информация о владельце, U = информация об изменении

Если это не работает, вы можете использовать эту команду для резервного копирования разрешений NTFS:

icacls d:\data /save ntfspermissions.txt /t /c

Ключ / T также позволяет ему получать права доступа к подпапкам. Параметр / C позволяет продолжить работу, даже если обнаружены ошибки (хотя ошибки все равно будут отображаться).

А затем используйте эту команду для восстановления разрешений:

icacls d:\ /restore ntfsperms.txt

Обратите внимание, что в команде для сохранения разрешений я указал целевую папку D:\Data, но когда я восстановил их, я указал только D:\в качестве цели. Можно подумать, что указание D:\в качестве цели в команде восстановления может как-то испортить разрешения для других папок на этом уровне, но, как вы можете видеть из выходного файла ntfspermissions.txt, он содержит только информацию о папке и подпапках данных, так что это все изменится.

Kalatzis Стефанос
источник
1
Я думаю, что icacls является ответом здесь. +1
MDMarra
согласовано. так как он не может переписывание данных , так как данные уже используется и , вероятно , изменились, Icacls на экспорт / импорт разрешений , кажется, лучший способ пойти.
Рекс
Спасибо за вашу помощь, я экспортирую icacls по мере ввода и попытаюсь импортировать позже. В следующий раз я буду помнить, чтобы всегда проверять свои разрешения
Саймон Фостер
3

Использование PowerShell:

Get-Acl 'source path' | Set-Acl 'destination path'
Torvin
источник
1
Я искал того же самого. Мне кажется, это реальный ответ. Другие говорят, что делать до копирования, а не после того, как попросили
alvaroc
0

Вы можете попробовать использовать Robocopy . AFAIK это все еще работает на более новых версиях Windows.

pritaeas
источник
Вы знаете синтаксис, который мне нужен? Я попытался сделать исходное имя robocopy / secfix / xo / xn / xc на странице выше, и он выдает ошибку о том, что не знает, какие разрешения копировать
Simon Foster
1
Это потому, что robocopy будет работать только в том случае, если содержимое общего ресурса не изменилось. Похоже, ваши пользователи, вероятно, изменили его, верно? Я не думаю, что Robocopy - это инструмент, который нужно использовать сейчас (хотя вы должны были использовать его в начале)
MDMarra
Это руководство для очень ранней версии robocopy. Какую версию вы используете сейчас? Вы можете быть в состоянии уйти с / копирования: Теперь стало только изменить NTFS списки управления доступом, но я не уверен ... Я пнуть небольшой тест прямо сейчас.
HopelessN00b
0

Как сказал Прииас, Робокопия.

Удобный справочник по использованию переключателей .

/ copyall или / copy: DATSOU скопирует «все» (данные, атрибуты, временные метки, списки ACL NTFS, информацию о владельце и аудите).

/ COPY: copyflag [s]: что копировать (по умолчанию / COPY: DAT) (copyflags: D = данные, A = атрибуты, T = временные метки S = ​​безопасность = списки ACL NTFS, O = информация о владельце, U = информация об изменении) ,

HopelessN00b
источник
1
Он специально говорит, что не хочет копировать данные. Кроме того, robocopy будет копировать безопасность, только если файлы не были изменены. Поскольку доля сейчас находится в производстве, я бы сказал, что это безопасная ставка, что она изменилась.
MDMarra
0
xcopy e:\*.* z: /T /E /I /H /K /X /Y

e:был корнем физического диска с несколькими общими ресурсами и всеми видами блоков наследования. z:был «новый» диск, в данном случае подключенный диск.

Это просто сработало, не для акций, просто разрешения.

Джон Лэм
источник
-4

Бесплатная программа CopyMik с ключами:

/ CSF [FileMask1 [FileMask2 [....]]]] Копировать атрибуты безопасности файла. Только файлы с указанной маской. (маска по умолчанию *)

/ CSD [DirMask1 [DirMask2 [....]]]] Копировать атрибуты безопасности папки. Только папки с указанной маской. (маска по умолчанию *)

http://www.superbasis.de/copymik/index.htm

user2290929
источник