Следующий скрипт дает возможность выгрузить списком все права доступа к определенной сетевой папке. Итоговый файл csv, в скрипте можно изменить разделитель для удобства.
Для сканирования по папкам верхнего уровня:
$folder = "\\ПУТЬ_к_сетевой_папке\"
$resc = gci $folder | where {$_.extension -like ""}
$out = foreach($r in $resc)
{
$s = get-acl $r.fullname
foreach($inherit in $s.Access)
{
$inherit | add-member -membertype noteproperty -name Path -value $r.fullname -passthru |
select Path, IdentityReference, filesystemrights
}
}
$out | Export-Csv -Encoding "Unicode" -Path "\\Путь\наименование_файла.csv" -Delimiter ";"
Для сканирования с учетом ВСЕХ вложенный папок:
$folder = "\\ПУТЬ_к_сетевой_папке\"
$resc = gci -recurse $folder | where {$_.extension -like ""}
$out = foreach($r in $resc)
{
$s = get-acl $r.fullname
foreach($inherit in $s.Access)
{
$inherit | add-member -membertype noteproperty -name Path -value $r.fullname -passthru |
select Path, IdentityReference, filesystemrights
}
}
$out | Export-Csv -Encoding "Unicode" -Path "\\Путь\наименование_файла.csv" -Delimiter ";"
pause
Для ограничения глубины поиска:
$folder = "\\ПУТЬ_к_сетевой_папке\"
$level = $folder.Split(‘\’).count
$resc = gci -recurse $folder | where { $_.PSIsContainer -and ($_.fullname.Split(‘\’).count -le ($level + 2)) }
$out = foreach($r in $resc)
{
$s = get-acl $r.fullname
foreach($inherit in $s.Access)
{
$inherit | add-member -membertype noteproperty -name Path -value $r.fullname -passthru |
select Path, IdentityReference, filesystemrights
}
}
$out | Export-Csv -Encoding "Unicode" -Path "\\Путь\наименование_файла.csv" -Delimiter ";"
pause
Где " +2 " глубина поиска
Источник: mcp.su/active-directory/folderpermissionslist/