Windows сохраняет явный ACL подпапки при копировании

Windows сохраняет явный ACL подпапки при копировании

При создании новых проектов мы используем главную папку проекта, одна из подпапок имеет явные ограничения доступа, отличные от содержащей ее папки.

Этот ACL теряется, когда вы копируете и вставляете главную папку в новый проект. Мы не хотим, чтобы он наследовал какую-либо часть ACL из новой папки проекта.

Как нам сохранить явный ACL для этой папки и ее подпапок/файлов с помощью проводника. Есть ли способ защитить явный ACL через копирование и вставку.

Есть ли способ сделать это с помощью скрипта в скопированном каталоге, который при двойном щелчке восстановит ACL в подкаталоге?

Я могу запустить команду powershell или команду icacls, чтобы сделать это, но не вижу способа сделать это через графический интерфейс, не вдаваясь в долгие рассуждения.

Возможно, я мог бы просто периодически запускать скрипт PowerShell, который ищет новые папки в определенном каталоге и запрашивает, есть ли какие-либо новые папки, соответствующие папке проекта, и применяет набор ACL к последующим новым подпапкам.

решение1

$SearchFolderPath = "C:\shares\Data\Clients & Projects\Projects"

$MasterFolder = "C:\shares\Data\ACL Scripts\Sample Folders\Master-test"

$AllFolders = Get-ChildItem -Path $SearchFolderPath -Directory -Recurse

$NameToMatch = "Folder Name to match"

$MasterAcl = Get-Acl -Path $MasterFolder

foreach($Folder in $AllFolders)
{   
    if($Folder.FullName -ne $MasterFolder -and $Folder.Name -match ".*$NameToMatch.*")
    {
       $MasterAcl | Set-Acl -Path $Folder.FullName  
       Write-Host "The Master ACL path has been set to $($Folder.FullName)" -ForegroundColor Green 
    }    
}

Связанный контент