
新しいプロジェクトを作成するときはマスター プロジェクト フォルダーを使用しますが、サブフォルダーの 1 つには、そのサブフォルダーを含むフォルダーとは異なる明示的なアクセス制限があります。
マスター フォルダーをコピーして新しいプロジェクトに貼り付けると、その 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
}
}