Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Скрипт на перенос прав NTFS (http://forum.oszone.net/showthread.php?t=329077)

Tyamich 14-08-2017 15:50 2758292

Скрипт на перенос прав NTFS
 
Доброго времени суток. У меня возникли следующие вопросы. Хотелось бы получить ответы у знающих людей:

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

Iska 14-08-2017 15:56 2758293

Copying NTFS permissions between folders | Confidential Files!

Tyamich 14-08-2017 15:57 2758294

Спасибо, буду пробовать

DefenderDf 17-05-2019 22:44 2872180

Товарищи, помогите написать скрипт для переноса 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), Не смог понять, как применить правила из .xml к файлам и папкам в корне пути C:\


Время: 22:50.

Время: 22:50.
© OSzone.net 2001-