PDA

Показать полную графическую версию : [решено] Скрипт на перенос прав NTFS


Tyamich
14-08-2017, 15:50
Доброго времени суток. У меня возникли следующие вопросы. Хотелось бы получить ответы у знающих людей:

Можно ли создать скрипт, который бы копировал права NTFS с одной папки на другую ?
Есть ли какие либо утилиты, с помощью которых можно это сделать или возможно команды в той же командной строке, power shell и так далее ?
Теперь поясню. Знаю, что можно с помощью xcopy скопировать содержимое одной папки в другую с сохранением ACL копируемой папки и копированием всего раздела со всеми подпапками. Но меня интересует именно копирование самого ACL без копирования каталогов и подкаталогов. Можно ли как-нибудь скопировать только права NTFS без переноса самого содержимого ? Допустим я хочу NTFS права папки test копировать другой папке - test 2.
Но так же хочу узнать и про нюансы. Допустим в папке test есть подпапки, а в test2 подпапок нету. Как тогда скопируются права NTFS с test на test2 ?
Плохо владею этим вопросом, хотелось бы уточнения

Iska
14-08-2017, 15:56
Copying NTFS permissions between folders | Confidential Files! (https://confidentialfiles.wordpress.com/2014/03/13/copying-ntfs-permissions-between-folders/)

Tyamich
14-08-2017, 15:57
Спасибо, буду пробовать

DefenderDf
17-05-2019, 22:44
Товарищи, помогите написать скрипт для переноса ACL из .wim в текущую систему.
Необходимо:
- очистить права доступа на каталог в текущей системы
- скопировать права доступа к файлам и папкам для всех пользователей из .wim
- скопировать флаги наследования для папок из .wim
- последний шаг перенос владельца папок (включая системные папки: TrustedInstaller)

То что у меня есть на текущий момент:

$iPath = Read-Host "Enter original location for reading ACL (D: \ wim \)" # папка с смонтированным образом .wim
$ACLPath = Read-Host "Enter the full name of the file in which to save the ACL (D: \ ACL_file)"

function Recurse($path) {
$fc = new-object -com scripting.filesystemobject
$folder = $fc.getfolder($path)
foreach ($i in $folder.files) {$i}
foreach ($i in $folder.subfolders) {
Write-Host $i.path
$i
if ((get-item -Force $i.path).Attributes.ToString ().Contains("ReparsePoint") -eq $false)
{
Recurse($i.path)
}
}
}

$Act = Read-Host "`n Выбирете что нужно сделать: `n 1. Сохранить ACL в файл `n 2. Применить ACL из файла `n`n"

if ( $Act.ToString().Contains("1") -eq $true) {
Recurse($iPath) | Get-NTFSAccess -ExcludeInherited | Export-Clixml $ACLPath".xml"
}

if ( $Act.ToString().Contains("2") -eq $true) {
}

Справка показалась мне неполной (Add-NTFSAccess -? И Clear-NTFSAccess -? модуль NTFSSecurity (https://github.com/raandree/NTFSSecurity)), Не смог понять, как применить правила из .xml к файлам и папкам в корне пути C:\




© OSzone.net 2001-2012