Пошаговые руководства, шпаргалки, полезные ссылки...
БлогФорумАвторы
Полезные Online-сервисы
Перечень Бесплатного ПО
Подписка на RSS-канал
# Путь до каталогов которые обрабатываются скриптом $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
Проверено на следующих конфигурациях:
Автор первичной редакции: Виталий Якоб Время публикации: 10.10.2024 12:00