【问题标题】:Linking folder security to AD security groups Powershell script将文件夹安全性链接到 AD 安全组 Powershell 脚本
【发布时间】:2019-02-08 13:59:00
【问题描述】:

我正在尝试编写将文件夹的安全权限链接到现有 AD 组的脚本。我还没有找到任何允许我编写脚本的脚本或 cmdlet(Set-Acl 无法链接到组,只有明确的权限)。

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

文件夹权限内的 AD 组示例:

编辑:我可能已经找到了关于 serverfault 的解决方案。我可以使用 Get-ADGroup cmdlet 来查找每个组的 SID,然后为 Set-Acl 传递 IdentityReference。将对此进行测试,看看我是否可以让它工作

【问题讨论】:

  • 嘿,很高兴您找到了问题的答案。当你测试它时,请随意写下你的问题的答案,解释你做了什么。先看看这里;):stackoverflow.com/help/how-to-answer

标签: powershell active-directory ntfs


【解决方案1】:

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

要向文件夹添加权限,只需一个命令:

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

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

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

【讨论】:

    【解决方案2】:

    我终于找到了解决问题的方法。感谢 James C. - 虽然我无法用你的方法弄清楚,但我相信它确实为我指明了正确的方向。

    我基本上使用了FileSystemAccessRuleconstructor。我清醒的那一刻是意识到我实际上可以参考广告组。我对 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 中的所有数据并循环遍历它以创建组。

    谢谢大家!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-04
      • 1970-01-01
      • 1970-01-01
      • 2021-09-30
      相关资源
      最近更新 更多