Поиск групп безопасности AD в сетевых папках

#powershell #active-directory

#powershell #active-directory

Вопрос:

Я не программист, я, должно быть, ошибся поворотом! Итак, это исключено, как, черт возьми, не существует простого способа взять набор сетевых папок и передать список групп безопасности AD, которые к нему применяются? Я погуглил, но есть миллион похожих вопросов, и я протестировал несколько сценариев, но не могу получить именно то, что хочу, или много ошибок. У нас есть каталог верхнего уровня, содержащий около 7 папок, а уровень безопасности составляет около 3 уровней. Мы хотим удалить неиспользуемые или потерянные группы безопасности из ИНСТРУМЕНТОВ AD и попытаться понять, что используется, а что нет. Попытка «очистки сетевого диска» в моей организации. Каков наилучший способ добиться этого? Я пробовал это в PS

 Get-ChildItem "\wfs.company.caadvworkgroupsadv services" -recurse | ForEach-Object {Get-Acl $_.FullName} | Export-CSV C:"adv services".csv
  

Это сработало, но дало мне слишком много информации, а не конкретные имена групп.

и я также пробовал что-то подобное, что просто приводило к ошибкам.

 # Scope options are Universal, DomainLocal,Global
# Get-GroupMember -Scope DomainLocal

Function Get-GroupMember{
    Param(
        [parameter(Mandatory=$true)]
        [string]
        $scope
    )
    $Groups = Get-ADGroup -Filter {GroupScope -eq $scope -and Members -ne "NULL"} -Properties Name | 
                  Select-Object Name, @{Name="GroupMembers";Expression={(Get-ADGroupMember -Identity "$_" | 
              Select-Object -ExpandProperty SamAccountName) -join "`n"}}
}
        $Groups | Format-Table -AutoSize -Wrap
        $Groups | Out-GridView
        $Groups | Export-Csv C:groups.csv -NoTypeInformation
  

Я не против заняться работой и исследованиями, я просто не знаю, с чего начать.
Любые указания приветствуются.
Спасибо!

Ответ №1:

Это можно использовать для получения уникального списка примененных удостоверений (групп и пользователей):

 (Get-ChildItem "\wfs.company.caadvworkgroupsadv services" -Recurse | Get-Acl).Access.IdentityReference | select -Unique
  

Кроме того, вы можете использовать Get-ADGroup или другие способы проверки, является ли это группой или пользователем.