Доброго времени суток. У меня возникли следующие вопросы. Хотелось бы получить ответы у знающих людей:
Можно ли создать скрипт, который бы копировал права NTFS с одной папки на другую ?
Есть ли какие либо утилиты, с помощью которых можно это сделать или возможно команды в той же командной строке, power shell и так далее ?
Теперь поясню. Знаю, что можно с помощью xcopy скопировать содержимое одной папки в другую с сохранением ACL копируемой папки и копированием всего раздела со всеми подпапками. Но меня интересует именно копирование самого ACL без копирования каталогов и подкаталогов. Можно ли как-нибудь скопировать только права NTFS без переноса самого содержимого ? Допустим я хочу NTFS права папки test копировать другой папке - test 2.
Но так же хочу узнать и про нюансы. Допустим в папке test есть подпапки, а в test2 подпапок нету. Как тогда скопируются права NTFS с test на test2 ?
Плохо владею этим вопросом, хотелось бы уточнения
Любой язык - [решено] Скрипт на перенос прав NTFS
-
Tyamich
-
DefenderDf
Re: Любой язык - [решено] Скрипт на перенос прав NTFS
Товарищи, помогите написать скрипт для переноса ACL из .wim в текущую систему.
Необходимо:
- очистить права доступа на каталог в текущей системы
- скопировать права доступа к файлам и папкам для всех пользователей из .wim
- скопировать флаги наследования для папок из .wim
- последний шаг перенос владельца папок (включая системные папки: TrustedInstaller)
То что у меня есть на текущий момент:
Код:
Справка показалась мне неполной (Add-NTFSAccess -? И Clear-NTFSAccess -? модуль
Необходимо:
- очистить права доступа на каталог в текущей системы
- скопировать права доступа к файлам и папкам для всех пользователей из .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
), Не смог понять, как применить правила из .xml к файлам и папкам в корне пути C:\