![设置子文件夹模式的安全性(服务器 2003)](https://linux22.com/image/553240/%E8%AE%BE%E7%BD%AE%E5%AD%90%E6%96%87%E4%BB%B6%E5%A4%B9%E6%A8%A1%E5%BC%8F%E7%9A%84%E5%AE%89%E5%85%A8%E6%80%A7%EF%BC%88%E6%9C%8D%E5%8A%A1%E5%99%A8%202003%EF%BC%89.png)
我的文件夹结构类似于这些段落下方所示的结构。如何更改每个“照片”文件夹的安全性,而无需在 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 *”以限制测试的匹配集