ACL экспорта / импорта - PullRequest
0 голосов
/ 15 мая 2019

Друзья, помогите написать скрипт для переноса ACL из .wim в текущую систему.Обязательно:

  1. очистить текущие права доступа текущей системы
  2. передать права доступа к файлам и папкам для всех пользователей из .wim
  3. правила наследования для папок из.wim
  4. последний шаг для передачи владельца папок (включая системные папки: TrustedInstaller)

модуль powershell NTFSSecurity или icacls.exe

$iPath = Read-Host "Enter original location for reading ACL (D: \ wim \)" # mounted image .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) 
   }
 }
}  

Recurse($iPath) | Get-NTFSAccess -ExcludeInherited | Export-Clixml $ACLPath".xml"

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

...