在创建新项目时,我们使用主项目文件夹,其中一个子文件夹具有与包含文件夹不同的明确访问限制。
当您将主文件夹复制并粘贴到新项目中时,该 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
}
}