
새 프로젝트를 생성할 때 마스터 프로젝트 폴더를 사용하는데, 하위 폴더 중 하나에는 포함된 폴더와는 다른 명시적인 액세스 제한이 있습니다.
마스터 폴더를 복사하여 새 프로젝트에 붙여넣으면 해당 ACL이 손실됩니다. 우리는 새 프로젝트 폴더에서 ACL의 어떤 부분도 상속받는 것을 원하지 않습니다.
파일 탐색기를 사용하여 해당 폴더와 하위 폴더/파일에 대한 명시적 ACL을 어떻게 유지합니까? 복사 붙여넣기에서 명시적 ACL을 보호하는 방법이 있습니까?
두 번 클릭하면 ACL을 하위 디렉터리로 복원하는 복사된 디렉터리 내의 스크립트를 통해 이 작업을 수행할 수 있는 방법이 있습니까?
Powershell 명령을 실행하거나 icacls 명령을 실행할 수 있지만 이에 대해 오랫동안 고민하지 않고 GUI를 통해 이 작업을 수행하는 방법을 볼 수 없습니다.
어쩌면 특정 디렉터리에서 새 폴더를 검색하고 프로젝트 폴더와 일치하는 새 폴더가 있는지 쿼리하고 일련의 ACL을 후속 새 하위 폴더에 적용하는 powershell 스크립트를 주기적으로 실행할 수도 있습니다.
답변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
}
}