设置子文件夹模式的安全性(服务器 2003)

设置子文件夹模式的安全性(服务器 2003)

我的文件夹结构类似于这些段落下方所示的结构。如何更改每个“照片”文件夹的安全性,而无需在 Windows 资源管理器中逐个单击每个文件夹?大约有 50 个顶级文件夹(Bob、Jim、Eva 等),其中的文件夹布局相同。

我非常希望得到任何建议,无论是脚本还是 GUI。我使用的是 Windows Server 2003。便宜/免费的方法会很好,因为该公司是注册慈善机构的一部分。理想情况下,我希望通过 DFS 路径来执行此操作。例如 \\mycompany.local\Shared\Staff\Bob\

感谢您的阅读。感谢您提供的任何信息。马克

  • 鲍勃
    • 审查
    • 轮廓
      • 相片
  • 吉姆
    • 审查
    • 轮廓
      • 相片
  • 伊娃
    • 审查
    • 轮廓
      • 相片

答案1

以下 PowerShell 脚本可以帮你解决这个问题。它将从 c 驱动器的根目录开始,并递归查找所有名为 Photos 的目录。

然后,correctacl 变量从现有文件夹获取您想要应用的权限。(我假设您也可以设置自己的 ACL 对象,但这似乎更困难。)

最后,对于找到的每个文件夹,它会设置 ACL 以匹配 CorrectACL 中的 ACL。可能需要一段时间,具体取决于服务器的大小,但应该可以正常工作。

$folders = Get-ChildItem -Path "\\someserver\c$" -Filter "Photos" -Recurse|Where-Object { $_.PSIsContainer }
$correctacl=Get-Acl -Path "\\someserver\c$\somefoldertogetaclobjectfrom"
foreach ($folder in $folders)
{
Set-Acl -AclObject $correctacl -Path $folder.PSPath
}

答案2

@Christopher 的 powershell 方法可行。如果您更喜欢使用传统命令行,请尝试此方法

For /D %i in (*) do cacls %i\profile\Photos .......

在命令行中运行 cacls ? 来确定您的设置的命令的其余部分

for /d 将与模式“*”(所有内容)的目录匹配,因此您将从目录结构的顶层运行它。

注意 - 您可以将模式更改为“bo *”以限制测试的匹配集

相关内容