Друзья, помогите написать скрипт для переноса ACL из .wim в текущую систему.Обязательно:
- очистить текущие права доступа текущей системы
- передать права доступа к файлам и папкам для всех пользователей из .wim
- правила наследования для папок из.wim
- последний шаг для передачи владельца папок (включая системные папки: 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: \