Как я могу перечислить всех участников из группы AD с включенными и отключенными пользователями?

3162
Marlon

Я пытаюсь получить список всех членов группы AD, показывающий активных \ неактивных пользователей. Цель состоит в том, чтобы получить всех участников в группах и перечислить тех, у кого есть права администратора.

Я сделал следующие команды:

$GROUPNAME = "Domain Admins"  Get-ADGroupMember -identity $GROUPNAME -Recursive | Select name, SamAccountName, objectclass | Sort-Object Name 

Пытался объединить с Get-ADUser -Filter, но мне нужен первый командлет для вывода для меня, пользователей, поэтому я могу фильтровать с помощью Get-ADuser.

ТКС заранее

1
Как насчет перетаскивания вывода из Get-ADGroupMember в переменную $ USERS и последующего запуска цикла ForEach, который протягивает их через Get-ADUser, чтобы проверить, включен ли? Сейчас я играю с этим, модифицируя сценарий, который похож на мой, но еще не сработал. music2myear 6 лет назад 1
@ music2myear Кажется, что сработало! Сделал следующее: `$ GROUPNAME = 'Администраторы домена``` Get-ADGroupMember -identity $ GROUPNAME -Recursive | Выберите имя, SamAccountName, объектный класс | Имя объекта сортировки `` foreach ($ USERS в $ USERS) | Выберите Имя, Включено, SamAccountName, UserPrincipalName} ` Marlon 6 лет назад 1
Сладкий, запиши это как ответ. Возможно, я указал вам правильное направление, но вы решили это. music2myear 6 лет назад 0
Хотя я бы лично не указывал объект выбора и сортировки в первой строке. Get-ADGroupMember выводит объекты, которые Get-ADUser должен уметь обрабатывать очень хорошо, и команды Select в последней строке должно быть достаточно. music2myear 6 лет назад 1
Провел несколько тестов здесь, но кажется, что утверждение: `Get-ADGroupMember -identity $ GROUPNAME -Recursive` не получает всех членов из группы« Администраторы домена »или любой другой группы в командлете. С последними результатами фильтрации командлетов просто показывают отключенных пользователей в общем на AD. Marlon 6 лет назад 0
В опубликованном вами коде не похоже, что вы записываете содержимое администраторов домена в переменную, а затем просто просматриваете каждую учетную запись пользователя в домене с помощью Get-ADUser. music2myear 6 лет назад 0
Похоже, что вы делаете команду `Get-ADGroupMember -identity $ GROUPNAME` без рекурсивной опции, чтобы показать участников. Просто не отображается группа, вставленная в группу администраторов домена. Marlon 6 лет назад 0
@ music2myear Я проверил эти командлеты и, кажется, работает сейчас! К сожалению, я не могу голосовать за свой ответ, если вы могли бы сделать, буду признателен. Marlon 6 лет назад 0

1 ответ на вопрос

1
Marlon

Сделал так:

$groupname = "Domain Admins" $users = Get-ADGroupMember -Identity $groupname | ? {$_.objectclass -eq "user"} foreach ($activeusers in $users) { Get-ADUser -Identity $activeusers | ? {$_.enabled -eq $true} | select Name, SamAccountName, UserPrincipalName, Enabled } 

Если вы хотите отключить, просто замените последний командлет:

foreach ($activeusers in $users) { Get-ADUser -Identity $activeusers | ? {$_.enabled -eq $false} | select Name, SamAccountName, UserPrincipalName, Enabled } 
Как добавить часть экспорта CSV здесь? ch.smrutiranjan parida 5 лет назад 0

Похожие вопросы