Быстрый запрос для больших групп в AD - PullRequest
0 голосов
/ 08 октября 2018

Я бы хотел найти более эффективный метод идентификации больших групп AD с помощью Powershell (скажем, более 5000 пользователей).Регистрация членов не обязательна, поскольку я хочу исключить эти группы из другого процесса.

Очевидно, что я могу использовать Get-ADGroup, как показано ниже, но если есть более эффективный способ (например, путемс использованием фильтров LDAP и т. д.), это было бы полезно.

(Get-ADGroup "Group" -Properties members).members.count | where {$_ -lt 5000}

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

1 Ответ

0 голосов
/ 08 октября 2018

У меня нет точного ответа.Но вы просите, чтобы округ Колумбия назвал вам каждое имя участника, несмотря ни на что.Это заняло бы целую вечность.Скобки вокруг get-adgroup требуют, чтобы каждый член был запрошен и сохранен в локальной памяти.Тогда вы говорите, чтобы получить метод членов.Так что это противостоит этому.Тогда получите счет.

Может быть, если вы сделали это.Он будет работать параллельно, а не повторяться 2 раза.Таким образом, это может сэкономить 20-30% вашего времени.

 Get-ADGroup "Group" -Properties members | select -ExpandProperty members | measure | where count -lt 5000

вот пример сценария, который делает это автоматически ... (я изменил фильтр ldap)

Get-ADGroup -filter * | select -expand name | foreach { 
    $group = $_
    if (Get-ADGroup {name -eq $group} -Properties members | select -ExpandProperty members | measure | where count -lt 5000){
        $countedGroups += $group
    }
    $countedGroups
}
...