Windows 在複製時維護子資料夾的明確 ACL

Windows 在複製時維護子資料夾的明確 ACL

建立新專案時,我們使用主專案資料夾,其中一個子資料夾具有與包含資料夾不同的明確存取限制。

當您將主資料夾複製並貼上到新專案時,該 ACL 會遺失。我們不希望它從新專案資料夾繼承 ACL 的任何部分。

我們如何使用檔案總管維護該資料夾及其子資料夾/檔案的明確 ACL。有沒有辦法透過複製貼上來保護顯式 ACL。

有沒有辦法透過複製目錄中的腳本來執行此操作,雙擊該腳本將 ACL 還原到子目錄?

我可以運行 powershell 命令或 icacls 命令來執行此操作,但無法找到透過 gui 執行此操作而不需要長篇大論的方法。

也許我可以定期運行一個 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 
    }    
}

相關內容