Получение списка DL с менее чем 2 пользователями - PullRequest
0 голосов
/ 17 октября 2018

Добрый день,

Я пытаюсь создать список всех DL в моей компании, у которых два или меньше пользователей.Есть много DL, которые люди просто прекращают использовать или пусты.Мы пытаемся их удалить.Это то, что у меня есть, но я не уверен, где я делаю ошибку.Большое спасибо за ваше время.

$GroupList = Get-ADGroup -filter * -searchbase " Company's OU "

$List = foreach ($Group in $GroupList) {
    $MembersoftheGroups = Get-ADGroupMember -Identity $Group.Name
    foreach ($user in $MembersoftheGroups) {
        $Internal_counter = 0

        If ($user.objectClass -eq "user") {

            $Internal_counter++ 
        }  
        if ($Internal_counter -gt "2") { }  
        if ($Internal_counter -le "2") {
            $Property = @{
                Group = $Group.Name;

            }

            $newobject = New-Object -TypeName PSobject -Property $Property
            $newobject
        }  
    }
}

$List 

Ответы [ 3 ]

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

Попробуйте ... .... 1001 *

$(Get-ADGroup -Filter { GroupCategory -eq 'Distribution' } -SearchBase '<whatever>').DistinguishedName | % { if ( $(Get-ADGroupMember -Identity $_).count -lt 3 ){ $_ } }

Фильтр при вызове Get-ADGroup поможет повысить производительность.В итоге вы получите список групп рассылки, в которых не более 2 участников.

0 голосов
/ 17 октября 2018
Get-ADGroup -Filter 'GroupCategory -eq "Distribution"' -Properties Members | 
    Where-Object -FilterScript { $_.Members.Count -le 2 }

Бонус (сортировка по количеству и форматированию в таблице):

Get-ADGroup -Filter 'GroupCategory -eq "Distribution"' -Properties Members | 
    Where-Object -FilterScript { $_.Members.Count -le 2 } |
        ForEach-Object -Process {
            [pscustomobject] @{
                Name = $_.Name
                MemberCount = $_.Members.Count
                Members = $_.Members
            }
        } | Sort-Object -Property MemberCount,Name | Format-Table -AutoSize
0 голосов
/ 17 октября 2018

Вот как я могу обработать получение списка групп AD, содержащих двух или менее членов:

$groups = ((Get-ADGroup -properties members -filter *) | ? { $_.Members.count -le 2 })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...