我正在尝试在 Powershell 中编写一个脚本,它将递归地查找文件夹并根据文件夹名称替换文件夹上的 ACL。
我已经拥有具有正确权限的文件夹。这些我用作模板文件夹。
Folder1
Folder2
- Subfolder1
- Subfolder2
实际上有数千个文件夹,它们都具有相同的名称,我想将相同的权限集应用于所有类似命名的文件夹。我已经用几种不同的方式来解决这个问题,但我还没有找到处理子文件夹和递归的好方法。
这是我尝试解决此问题的第一种方法的示例。
$Prop = Get-Acl "Template\Subfolder1"
$Engd = Get-Acl "Template\Subfolder2"
foreach ($file in $(Get-ChildItem Folder2 -recurse)) {
If ($_ = "Subfolder1") {
set-acl $_ $Prop
}
If ($_ = "Subfolder2") {
set-acl $_ $Engd
}
}
我越是努力写这篇文章,我就越意识到它会越来越难。我有数百个类似于 Folder2 Folder3..... FolderN 的文件夹,它们都具有相同的文件夹结构和文件夹名称。我只想要一些简单的东西来匹配文件夹名称并根据名称分配某个预定义的 ACL。
未经测试,但这样的事情怎么样: