Get-ADGroup - это команда, которая возвращает список групп в Powershell. Для того что бы вывести список пользователей в группе есть другая команда Get-ADGroupMember и мы ее тоже рассмотрим. В этих командлетах есть один обязательный ключ. Для примера так мы выведем весь список групп AD в Powershell:
Get-ADGroup -Filter *
Примеры с Get-ADGroup Filter
Если мы хотим вывести, например, только список групп безопасности, то можно сделать это так:
Get-ADGroup -Filter {GroupCategory -eq "Security"}
GroupCategory - это свойство, а eq ищет точное соответствие. Операторы сравнения powershell разбирались тут.
Свойств, которые мы бы хотели вывести или сравнить достаточно много и что бы увидеть их все выполните:
Get-ADGroup -Filter * -Properties * | Get-Member -MemberType Properties
Можно делать сравнивание по нескольким значениям. Если я хочу получить группы созданные 20 дней назад, а так же что бы их тип был Distribution (группа распространения), мне следует сделать так:
$date = (Get-Date).AddDays(-20)
Get-ADGroup -Filter {(GroupCategory -eq "Distribution") -and (WhenCreated -gt $date)} -Properties *
Другие примеры рассматриваются дальше...
Получаем список пользователей группы в Powershell Get-ADGroup
Мы можем найти данные по группе указав только имя. В моем случае я ищу группу, где имя заканчивается на marketing:
Get-ADGroup -Filter {Name -like "*marketing"} -Properties Members | SELECT *
Где:
- Properties - расширяет список стандартных свойств. В нашем случае указываем, что нам нужно получить список пользователей группы в Powershell
- Select - в таком варианте команда выводит список всех свойств, а не только стандартный список
У нас есть и другой способ получить список пользователей группы - это через Get-ADGroupMember. Принцип такой же как и в предыдущих вариантах:
Get-ADGroup -Filter {Name -like "*marketing"} -Properties Members | Get-ADGroupMember
Разница этих двух вариантов в том, что в первом случае мы получаем укороченную информацию о пользователях, а во втором более подробный список.
Для получение пользователей можно сделать и так, но в этом варианте есть минус, что мы должны писать точное соответствие имени:
Get-ADGroupMember -Identity Marketing
В описании на сайте Microsoft пишут, что в нем появляется ошибка только в случае, если командлет возвращает более одной группы (в случае использования масок), но у меня так и не получилось это сделать. Вместо имени мы можем использовать SID и GUID.
Получение в Powershell групп пользователя
Обратная ситуация, когда мы хотим узнать в каких группах наш пользователь. Для этого тоже есть несколько вариантов. Первый - это через команду получения пользователей со свойством MemberOf:
Get-ADUser -Filter {Name -eq "Test User (0001)"} -Properties MemberOF
Если мы хотим узнать какую либо подробную информацию о группе сделайте так:
$groups = Get-ADUser -Filter {Name -eq "Test User (0001)"} -Properties MemberOF
$groups.MemberOF | Get-ADGroup
Мы можем найти группы пользователя и так:
Get-ADGroup -Filter * -Properties Member | where -Property Member -Like "*Test User (0001)*"
Но минус этого способа в том, что он будет выполняться дольше. Возможно это будет не заметно с 1000 пользователями, а вот с 50000 может.
...
Подписывайтесь на наш Telegram канал
Теги: #powershell #ad