将文件夹安全性链接到AD安全组Powershell脚本

时间:2018-09-03 13:41:35

标签: powershell active-directory ntfs

我正在尝试编写将文件夹的安全权限链接到现有AD组的脚本。我还没有找到任何脚本或cmdlet(Set-Acl不能链接到组,只能显示权限)来编写脚本。

作为示例,我有一个名为“ FOLDER A”的文件夹和一个名为“ FOLDER A”的AD安全组。有什么方法可以将AD组添加到文件夹的安全性中?

文件夹权限内的AD组:

AD group within folder permissions example

编辑:我可能已经找到关于serverfault的解决方案。我可以使用Get-ADGroup cmdlet查找每个组的SID,然后为Set-Acl传递IdentityReference。会测试一下,看看我能否使它工作

2 个答案:

答案 0 :(得分:0)

在处理文件系统权限时,我总是使用NTFSSecurity模块。该模块中的命令比Set-Acl更易于理解,因为它们的行为与GUI相同。

要将权限添加到文件夹,这只是一个命令:

Add-NTFSAccess -Path 'C:\Folder A' -Account 'Domain\Folder A' -AccessRights Read

值得阅读文档链接,因为该模块可以做的不仅仅是增加权限!

注意:您确实需要安装模块,如果您使用的是Powershell的现代版本,这很容易,因为您可以使用Install-Module -Name NTFSSecurity。如果是旧版本,则需要手动下载并安装模块。

答案 1 :(得分:0)

我终于找到了解决我问题的方法。谢谢JamesC。-虽然我无法使用您的方法来弄清楚,但我相信它确实为我指明了正确的方向。

我本质上使用了FileSystemAccessRule构造函数。我当时清楚的是意识到我可以实际引用广告组。我是Powershell的新手,所以对我而言这并不是立即显而易见的。这是实现:

$acl = Get-Acl <PATH OF FOLDER>

$AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule('<NAME OF GROUP>','<PERMISSIONS>,'<Allow/Deny>')

$acl.SetAccessRule($AccessRule)

$acl | Set-Acl <PATH OF FOLDER>

有关构造函数的完整文档,请参见here。然后,我使用Python脚本在csv中格​​式化所有数据,并循环遍历以创建组。

谢谢大家!