Вики IT-KB

Пошаговые руководства, шпаргалки, полезные ссылки...

Инструменты пользователя

Инструменты сайта


powershell:active-directory:find-active-directory-ous-and-containers-with-a-specific-security-group-in-acl-using-powershell

Поиск OU и контейнеров Active Directory с определённой группой безопасности в ACL

# Путь до корня домена, OrganizationUnit или Container
$RootOU = "DC=holding,DC=com"
# Искомая группа доступа
$TargetGroup = "Group" 
 
function Check-AclForGroup {
    param (
        [string]$DistinguishedName,
        [string]$Group
    )
 
    # Получаем ACL
    $acl = Get-Acl -Path "AD:$DistinguishedName"
    foreach ($ace in $acl.Access) {
     if ($ace.IdentityReference -like "*$Group*") {
      Write-Output "$DistinguishedName : Group '$Group' found with permissions: $($ace.ActiveDirectoryRights)"
     }
    }
}
 
function Process-Container {
    param (
        [string]$DistinguishedName,
        [string]$Group,
        [int]$MaxDepth = 2 # глубина рекурсии, включая текущий уровень, т.е. +1
    )
 
    # Проверяем acl
    Check-AclForGroup -DistinguishedName $DistinguishedName -Group $Group
 
    # Останаливаем рекурсию при достижении макс глубины
    if ($MaxDepth -le 0) { return }
 
    # Получаем только OU и контейнеры
    $subContainers = Get-ADObject -Filter {(objectClass -eq "organizationalUnit") -or (objectClass -eq "container")} -SearchBase $DistinguishedName -SearchScope OneLevel
    foreach ($subContainer in $subContainers) {
        # Рекурсивно проходим по каждому
        Process-Container -DistinguishedName $subContainer.DistinguishedName -Group $Group -MaxDepth ($MaxDepth - 1)
    }
}
 
Process-Container -DistinguishedName $RootOU -Group $TargetGroup



Проверено на следующих конфигурациях:

Версия ОС Версия PowerShell
Windows 10 Pro 10.0.19045 PowerShell 5.1

Автор первичной редакции:
Виталий Якоб
Время публикации: 10.10.2024 12:06

Обсуждение

Ваш комментарий:
 
powershell/active-directory/find-active-directory-ous-and-containers-with-a-specific-security-group-in-acl-using-powershell.txt · Последнее изменение: 10.10.2024 12:07 — Алексей Максимов

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki