Быстрый запрос для больших групп в AD

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

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

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

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

1 ответ

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

Может быть, если вы сделали это. Он будет работать параллельно, а не повторяться 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
}
Другие вопросы по тегам