Я хотел бы скопировать права доступа к одному файлу. Я не хочу копировать данные, только разрешения.
Например, я создал новый файл и хочу, чтобы он имел те же разрешения, что и другой файл, который уже существовал.
windows-7
file-permissions
acl
Taotao
источник
источник
Ответы:
Вы можете сделать это в несколько шагов с помощью icacls и текстового редактора.
Сначала вы должны сохранить разрешения исходного файла
вам нужно будет отредактировать
perms.txt
файл, который вы только что создали, в любой папке, в которой вы работалиicacls
. Файл должен выглядеть примерно так:Вы можете игнорировать все вещи во втором ряду, все, что нас волнует, это первый ряд. Измените
file1.bin
свое новое имя файлаfile2.bin
и сохраните файл.Теперь вам просто нужно восстановить права доступа ко второму файлу, обратите внимание, что на этот раз мы не включили имя файла. (Если вы получаете сообщение об ошибке « Не все привилегии или группы, на которые есть ссылки, назначены вызывающей стороне. » Запустите программу снова в командной строке с повышенными привилегиями.)
источник
File.GetAccessControl()
иFile.SetAccessControl()
Чтобы сделать это в пакете (скопируйте разрешения безопасности из подпапки или всех папок одного диска в одну и ту же папку / файл на другом диске), создайте, скажем,
cpdacls.bat
файл с таким содержимым:А потом запусти как
cpdacls.bat e:\ f:\
.Обратите внимание, что структура папки в папке назначения должна совпадать со структурой папки в исходной папке, взятой из ее корня , независимо от того, какую подпапку вы указали в качестве исходной папки.
источник
На сегодняшний день самый простой способ - использовать PowerShell и запустить:
источник