===== Поиск каталогов с определённой группой безопасности в ACL ===== # Путь до каталогов которые обрабатываются скриптом $RootPath = "\\path\to\dir" # Искомая группа доступа $TargetGroup = "group" # Максимальная глубина рекурсии $MaxDepth = 3 function Check-AclForGroup { param ( [string]$Path, [string]$Group ) # Проверка существования пути if (-Not (Test-Path -Path $Path)) { Write-Output "Путь '$Path' не существует." return } $acl = Get-Acl -Path $Path $acl.Access | Where-Object { $_.IdentityReference -like "*$Group*" } | ForEach-Object { Write-Output "$Path : Установлена группа '$Group' с правами: $($_.FileSystemRights)" } } function Process-Folder { param ( [string]$Path, [string]$Group, [int]$MaxDepth ) # Проверям группу на каталоге Check-AclForGroup -Path $Path -Group $Group # Останавливаем рекурсию при достижении макс глубины if ($MaxDepth -le 0) { return } # Получаем подкаталоги $subDirs = Get-ChildItem -Path $Path -Directory -ErrorAction SilentlyContinue foreach ($subDir in $subDirs) { Process-Folder -Path $subDir.FullName -Group $Group -MaxDepth ($MaxDepth - 1) } } # Поиск с заданной глубиной Process-Folder -Path $RootPath -Group $TargetGroup -MaxDepth $MaxDepth \\ ---- Проверено на следующих конфигурациях: ^ Версия ОС ^ Версия PowerShell ^ | Windows 10 Pro 10.0.19045 | PowerShell 5.1 | ---- {{:user:vyakob.png?50&nolink |}} Автор первичной редакции:\\ [[user:vyakob|Виталий Якоб]] \\ Время публикации: 10.10.2024 12:00 {{tag>PowerShell "Active Directory" "File Server" ACL}} ~~DISCUSSION~~