Подсчет групп безопасности, вложенных в другие группы безопасности - PullRequest
0 голосов
/ 13 июня 2019

Я пытаюсь понять сферу вложения групп безопасности своих компаний.У нас есть много групп, вложенных в другие, что вызывает проблемы с размером маркера безопасности (IE, добавляющий пользователя X в группу Y, увеличивает их членство в группе на 350+).

Я хочу создать отчет, в котором перечислены все параметры безопасности.групп (исключая группы рассылки) и подсчитывает общее количество рекурсивных членств в группах.

Quest Tools могут запускать отчеты по требованию без проблем "(get-qadgroup "GroupHere").AllMemberOf.count".У меня проблемы с извлечением всего в отчет.Вот что я пытаюсь.

Get-ADGroup -filter {groupCategory -eq 'Security'} | 
Select SamAccountName |
ForEach-Object { (get-qadgroup $_.SamAccountName).AllMemberOf.count |
Export-csv -path "C:\_Reports\Security Group Nesting Numbers.csv" -NoTypeInformation -append
}

Моя логика в «-append» состоит в том, чтобы избежать цикла, перезаписывающего верхнее значение.Я не на 100% уверен, что это необходимо.

Get-ADGroup работает нормально.Выбор работает отлично.ForEach действительно возвращает список чисел.Я думаю, что они точны.В основном у меня возникают проблемы при экспорте SamAccountName со связанным AllMemberOf.Count.

1 Ответ

0 голосов
/ 13 июня 2019

Вы можете использовать что-то вроде этого:

#Create array to hold all groups
$groups = @()
#Run through groups
Get-ADGroup -Filter {groupCategory -eq 'Security'} | Select-Object -ExpandProperty SamAccountName | ForEach-Object {
    #Get current group
    $currentGroup = Get-ADGroup $_
    #Create new custom object
    $group = New-Object System.Object
    #Add group info to custom object
    $group | Add-Member -MemberType NoteProperty -Name "SamAccountName" -Value $currentGroup.SamAccountName
    $group | Add-Member -MemberType NoteProperty -Name "Count" -Value $currentGroup.AllMemberOf.Count
    #Add custom object to array
    $groups += $group
}
#Output array to CSV
$groups | Export-Csv -NoTypeInformation -Path C:\test.csv

Вывод в CSV-файл выглядит следующим образом:

SamAccountName         Count
Group1                 2
Group2                 3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...