如何使用 powershell 或类似工具获取与 Active Directory 组关联的所有文件夹?

如何使用 powershell 或类似工具获取与 Active Directory 组关联的所有文件夹?

在我的工作中,我们有数百个 AD 组,我们将用户添加到这些组中,以授予他们访问文件夹的权限。对于我们授予访问权限的每个文件夹/文件夹组,应该有一个读取、写入和修改组。其中很多都缺失了(有些只缺少三者中的一两个)。

我想编写一个脚本(或者甚至想知道是否可行),该脚本将获取与组关联的文件夹,以便我可以添加缺失的文件夹。我们的共享驱动器上有数千个(可能数万个)子目录和文件,因此递归搜索每个组并不节省我的时间。递归搜索一次并将每个文件夹和组放入 csv 是否现实?或者我可以使用其他语言来获取此信息吗?

如果我没有提供任何内容,请告诉我!我将在下面提供添加缺失组的代码

Import-Module ActiveDirectory

$ou1 = "OU=redacted,OU=redacted,OU=redacted,OU=redacted,DC=redacted,DC=redacted"
$ou2 = "OU=redacted,OU=redacted,OU=redacted,OU=redacted,DC=redacted,DC=redacted"

foreach ($ou in ($ou1, $ou2)) {
    $groups = Get-ADGroup -Filter * -SearchBase $ou | Sort-Object -Property Name

    foreach ($current in $groups) {
        $groupName = $current.Name
        $suffixes = $groupName -split '_|-'
        $missingGroups = @()

        if (-not ($suffixes -contains 'R')) {
            $missingGroups += $groupName + '-R'
        }
        if (-not ($suffixes -contains 'W')) {
            $missingGroups += $groupName + '-W'
        }
        if (-not ($suffixes -contains 'M')) {
            $missingGroups += $groupName + '-M'
        }

        # Create missing groups here using $missingGroups array

        $missingGroups = @()
    }
}

基本逻辑是运行此程序以查找缺少哪些组,获取与同名组关联的文件夹,并为该新组添加读取、写入或修改权限。任何帮助都值得感激!

相关内容