Вики IT-KB

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

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

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


powershell:file-system:find-directories-with-specific-security-group-in-acl-using-powershell

Поиск каталогов с определённой группой безопасности в 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

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

Обсуждение

Ваш комментарий:
 
powershell/file-system/find-directories-with-specific-security-group-in-acl-using-powershell.txt · Последнее изменение: 10.10.2024 13:53 — Виталий Якоб

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki