在我的工作中,我们有数百个 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 = @()
}
}
基本逻辑是运行此程序以查找缺少哪些组,获取与同名组关联的文件夹,并为该新组添加读取、写入或修改权限。任何帮助都值得感激!