Page 1 of 1

如何使用 PowerShell 管理文件系统 ACL

Posted: Wed Jan 22, 2025 4:08 am
by roseline371274
 

如果没有 PowerShell,调整数千个文件夹的权限可能会非常耗时。
调整数千个文件夹和文件的权限可能非常耗时 - 除非您使用 PowerShell 来自动执行。

对于管理文件服务器的任何 IT 专业人员来说,管理文件和文件夹的权限是一项耗费大量时间的工作。用户有个人主文件夹,部门有部门文件夹,项目有文件夹等等。出于某种原因,您的公司认为让每个人都有权访问这些文件夹中的所有文件不是一个好主意。我们倾向于同意这一点。

使用 GUI 更改单个文件夹的权限非常简单。只需右键 克罗地亚whatsapp 数据 单击文件夹,转到“安全性”即可。



当您需要更改数千个文件夹时,问题就出现了。假设您有一个公司文件服务器,其中包含所有员工的主文件夹。每个员工都需要对自己的文件夹具有修改权限,而管理员需要对所有文件夹具有完全控制权。您已经构建了服务器并创建了所有文件夹,但现在您必须面对确保每个文件夹的 NTFS 权限设置正确的挑战。您将如何做到这一点?

我希望你没有说你会因为这里不使用鼠标而弄坏你的鼠标,抱歉。我们使用 PowerShell 来自动执行整个过程。

更改文件夹和文件的 ACL
更改文件夹或文件的访问控制列表 (ACL) 需要三个阶段:

获取当前 ACL。
修改 ACL。
设置新的 ACL。
在更改 ACL 之前,您必须先获取现有的 ACL。使用 PowerShell 有两种方法可以执行此操作;您可以使用Get-Acl cmdlet 或GetAccessControl()方法。我们强烈建议使用 GetAccessContro() 方法。Get-Acl 很方便,但由于某些限制,它不如 GetAccessControl() 那么智能。

在我们开始更改所有主文件夹的权限之前,我们应该在单个文件夹上进行测试。 



太棒了!看来我们现在有了查找单个文件夹的 ACL 的代码。现在让我们扩展它以查找所有主文件夹的 ACL。只需使用Get-ChildItem和Directory参数来排除文件(而不是使用Get-Item ),我们现在就可以找到所有主文件夹的 ACL。我们越来越近了!



下一步是修改每个文件夹的 ACL。请记住,我们要确保每个主文件夹的唯一访问权限用户是该文件夹的所有者。我们如何知道文件夹的所有者?幸运的是,文件夹的所有者也是文件夹名称本身。 



我们需要获取该文件夹名称,并使用该名称在 ACL 中创建另一个条目。遗憾的是,脚本必须变得更复杂一些。