Как посмотреть состав группы ad
Примеры работы с группами MS Active Directory (AD DS) из командной строки Powershell
Получение информации
1. Список всех групп
* будут выбраны все группы, в названии которых встречается free.
2. Подробная информация о группе
* где ключ -Properties * покажет информацию о всех атрибутах группы.
Показать только SID и GUID группы:
Get-ADGroup «Domain Admins» | ft ObjectGUID, SID
3. Посмотреть членов группы
Перечень членов групп с базовой информацией о каждом пользователе:
Вывести на экран только имена пользователей:
* в данном примере используется ключ Recursive — это позволяет вывести на экран не только членов группы Administrators, но и членов групп, которые входят в эту группу.
Вывести членов групп с подробной информацией по каждому из них:
4. Количество пользователей в группе
Расчет выполняется методом Count:
5. В каких группах состоит пользователь
Задача немного обратная — работаем с пользователем и отображаем список групп, в которые он входит:
6. Список пустых групп
Имеются ввиду группы, в которых нет ни одного пользователя:
7. Cписок пользователей, которые не входят в конкретную группу
* в данном примере мы увидем список пользователей, которые не входят в группу Managers.
Действия с группами AD
1. Добавить пользователя в группу
Add-ADGroupMember «Domain Admins» dmosk
* в данном примере пользователь dmosk будет добавлен в группу Domain Admins.
2. Создать новую группу
* где GroupScope DomainLocal задает локальную область действия; Path определяет размещение группы в дереве Active Directory.
3. Удалить пользователя из группы
* удаляем пользователя dmosk из группы Domain Users. Ключ -Confirm:$false используется для автоматического подтверждения действия (система не станет запрашивать, точно ли Вы хотите удалить пользователя из группы).
Получение списка пользователей в группе AD и выгрузка в CSV
В этой статье мы рассмотрим несколько примеров использования PowerShell для получения списка пользователей в различных группах Active Directory. Данная статья должна научить вас получать список учетных записей определенной группы AD и экспортировать полученный список пользователей с различными атрибутами в CSV файл, с которым удобно работать в Excel.
Ранее для построения списка пользователей в группах Active Directory приходилось использовать скрипты VBScript, или утилиты командной строки DSQuery или CSVDE, недостаточно гибкие и удобные.
Для взаимодействия с AD Microsoft разработала специальный модуль Active Directory Module для Windows PowerShell. Впервые данный модуль появился в Windows Server 2008 R2 и для его использования нужно сначала его загрузить в вашу сессию PowerShell командой:
В Windows Server 2012 / R2 / Windows Server 2016 этот модуль автоматически устанавливается и загружается при установке на сервере роли ADDS (Active Directory Domain Services), т.е. при повышении сервера до контроллера домена.
В настольных пользовательских операционных системах (Windows 10 / 8 / 7) модуль Active Directory для Windows PowerShell входит в состав RSAT, который нужно скачать, устанавливать и активировать модуль для работы с AD отдельно.
Обратите внимание, что для использования в сессии PowerShell модуля ActiveDirectory не обязательно иметь права администратора домена. Получить информацию о пользователях и группах из AD может любой аутентифицированный пользователь домена.
Для получения информации об учетных записях, которые входят в группу безопасности Active Directory используется командлет Get-ADGroupMember.
Например, чтобы вывести на экран список членов группы Domain Admins, нужно выполнить команду:
Get-ADGroupMember ‘Domain Admins’
В том случае, если вы не знаете точного имени группы, можно вывести список всех групп в AD с помощью команды:
Чтобы отобразить только имена пользователей в группе:
Переключатель –recursive предписывает команде get-adgroupmember получать список пользователей из каждой вложенной группы и выводить только объекты, не являющиеся контейнерами (пользователей или компьютеры). Т.е. данная команда отобразит даже тех пользователей, которые напрямую не входят в группу.
Можно вывести более подробную информацию об учетных записях в данной группе таким образом:
Рассмотрим более сложную конструкцию PowerShell, которая позволяет вывести всех членов определённой доменной группы безопасности с информацией о компании, подразделении и должности с последующей сортировкой и разбивкой на блоки с зависимости от конкретного аттрибута (допустим нам нужно сгруппировать пользователей по полю Компания — company ):
Для выгрузки полученного списка в текстовый файл в конце предыдущей команды нужно добавить конвейер:
Для выгрузки списка пользователей группы в CSV файл нужно добавить такой конвейер:
Можно посчитать общее количество пользователей в группе:
Еще один полезный пример. Попробуем найти все группы AD содержащие в имени шаблон *Manager*, и выведем пользователей, которые входят в эти группы. Чтобы выводить только уникальные объекты, воспользуемся аргументом -uniq.
Если при выполнении команды Get-ADGroupMember появится ошибка:
Get-ADGroupMember : The specified directory service attribute or value does not exist
Значит в состав группы входят пользователи из других лесов. Командлет Get-ADGroupMember не поддерживает работу с пользователями из разных лесов AD.
Для добавления пользователей в группы AD нужно использовать командлет Add-ADGroupMember.
Как получить в Powershell список групп и их пользователей
Навигация по посту
Примеры с Get-ADGroup Filter
Если мы хотим вывести, например, только список групп безопасности, то можно сделать это так:
Свойств, которые мы бы хотели вывести или сравнить достаточно много и что бы увидеть их все выполните:
Можно делать сравнивание по нескольким значениям. Если я хочу получить группы созданные 20 дней назад, а так же что бы их тип был Distribution (группа распространения), мне следует сделать так:
Другие примеры рассматриваются дальше.
Получаем список пользователей группы в Powershell Get-ADGroup
Мы можем найти данные по группе указав только имя. В моем случае я ищу группу, где имя заканчивается на marketing:
Разница этих двух вариантов в том, что в первом случае мы получаем укороченную информацию о пользователях, а во втором более подробный список.
Для получение пользователей можно сделать и так, но в этом варианте есть минус, что мы должны писать точное соответствие имени:
В описании на сайте Microsoft пишут, что в нем появляется ошибка только в случае, если командлет возвращает более одной группы (в случае использования масок), но у меня так и не получилось это сделать. Вместо имени мы можем использовать SID и GUID.
Получение в Powershell групп пользователя
Если мы хотим узнать какую либо подробную информацию о группе сделайте так:
Мы можем найти группы пользователя и так:
Но минус этого способа в том, что он будет выполняться дольше. Возможно это будет не заметно с 1000 пользователями, а вот с 50000 может.
Управление группами Active Directory с помощью PowerShell
Для управления группами в Active Directory не обязательно использовать графическую оснастку Active Directory Users and Computer (ADUC). Вы можете выполнять все действия по управлению группами в домене Active Directory из командной строки PowerShell. В этой статье мы рассмотрим, как с помощью PowerShell создать новую группу в AD, добавить в нее пользователей (или удалить), вывести/экспортировать список пользователей группы и другие полезные команды, которые часто используются при администрировании AD.
Для управления группами AD нужно использовать специальный модуль — Active Directory Module for Windows PowerShell. Модуль RSAT-AD-PowerShell доступен во всех версиях Windows Server (начиная с Windows Server 2008R2), а в десктопных Windows 10 и Windows 11 он устанавливается как компонент RSAT.
Проверьте, загружен ли модуль AD в текущую сессию PowerShell:
Как вы видите, модуль ActiveDirectory загружен. Если нет – импортируйте его командой:
Выведем список командлетов PowerShell, позволяющих управлять группами AD:
Доступно 11 командлетов:
New-ADGroup: создать новую группу в Active Directory
Создадим новую группу безопасности в указанном контейнере (OU) Active Directory с помощью команды New-ADGroup:
С помощью атрибута Description можно задать описание группы, а с помощью DisplayName изменить отображаемое имя.
Параметром GroupScope можно задать один из следующих типов групп:
Создать группу распространения можно так:
При создании группы AD можно сразу заполнить любые атрибуты. Проще всего задать значения различных атрибутов группы через HashTable:
Add-AdGroupMember: добавить пользователей в группу Active Directory
Добавить пользователей в группу Active Directory можно с помощью командлета Add-AdGroupMember. Добавим в новую группу двух пользователей:
Если нужно добавить в группу сразу большое количество пользователей, вы можете сохранить список учетных записей в CSV файл, затем импортировать данный файл и добавить каждого пользователя в группу с помощью простого PowerShell скрипт.
В нашем примере используется следующий формат CSV файла (список пользователей по одному в строке, имя столбца – users)
Чтобы получить всех членов одной группы (groupA) и добавить их в другую группу (groupB), воспользуйтесь такой командой:
Get-ADGroupMember “GroupA” | Get-ADUser | ForEach-Object
Если нужно скопировать в новую группу и членов всех вложенных групп (рекурсивно), нужно воспользоваться такой командой:
В версии Active Directory, представленной в Windows Server 2016 можно использовать функцию временного членства в группах безопасности AD (Temporary/ Time Based Group Membership). Чтобы временно добавить пользователя в группу AD (например, на 2 часа), выполните команду:
Через 2 часа этот пользователь будет автоматически удален из данной группы.
Remove-ADGroupMember: удалить пользователей из группы
Для удаления пользователей из группы AD нужно использовать командлет Remove-ADGroupMember. Удалим из группы двух пользователей:
Если нужно удалить из группы пользователей по списку из CSV файла, воспользуйтесь такой командой:
Get-ADGroup: получить информацию о группе AD
Для получения информации о группе домена AD используйте командлет Get-ADGroup:
Даная команда выводит информацию об основных атрибутах группы (DN, тип группы, имя, SID группы). Чтобы вывести значение всех атрибутов группы, выполните команду:
Как вы видите, теперь стали отображаться такие атрибуты, как время создания и модификации группы, описание и т.д.
(в первой команде используется LDAP фильтр, во второй фильтр по атрибуту AD):
С помощью Get-ADGroup можно получить список членов группы (хранится в атрибуте members):
Однако для получения списка членов группы гораздо удобнее использовать другой командлет — Get-ADGroupMember.
Get-ADGroupMember: вывести список пользователей в группе Active Directory
Командлет Get-ADGroupMember позволяет получить членов группы AD. Это могут быть пользователи, компьютеры, другие группы или учетные записи служб (MSA/gMSA).
Вы можете вывести на экран список пользователей в доменной группе:
Чтобы оставить в результатах только имена пользователей, выполните:
Get-ADGroupMember ‘TestADGroup’| ft name
Если в данную группу включены другие группы домена, чтобы вывести полный список членов, в том числе всех вложенных групп, воспользуйтесь параметром Recursive.
Чтобы экспортировать список пользователей, состоящих в определённой группе в CSV файл (для дальнейшего использования в Excel), выполните команду:
Вы можете экспортировать в текстовый файл и другие атрибуты пользователей AD. Для получения атрибутов пользователя используется командлет Get-ADUser. Например, кроме имени учетной записи, можно вывести UserPrincipalName, должность и телефон пользователя группы:
Посчитать количество пользователей в группе можно так:
Чтобы найти список пустых групп в определенном OU, воспользуйтесь такой командой:
С помощью командлета Get-ADGroupMember можно создать простой PowerShell скрипт для оповещения администратора, если кто-то добавил нового пользователя в определенную группу AD.
Set-ADGroup: изменить атрибуты группы AD
Командлет Set-ADGroup позволяет изменить свойства (атрибуты) любой группы Active Directory. Например, можно изменить описание и название группы:
Можно изменить сразу несколько параметров группы. Список изменения удобно задать через HashTable:
Список атрибутов можно получить так или в консоли ADUC на вкладке редактора атрибутов
Remove-ADGroup: удалить группу AD
Чтобы удалить групп в Active Directory используется командлет Remove-ADGroup:
При удалении группы появляется запрос подтверждения удаления. Чтобы отключить подтверждение удаления, добавьте параметр Confirm:
Как я могу узнать, в каких группах AD я состою?
Я использую рабочий стол Windows XP в корпоративной среде. Как я могу узнать, к каким группам AD я принадлежу?
Попробуйте запустить gpresult /R сводку RSoP или gpresult /V подробный вывод из командной строки от имени администратора на компьютере. Это должно вывести что-то вроде этого:
Или, если вы вошли в ОС Windows Server с помощью модуля ActiveDirectory PowerShell (или с ОС клиента с помощью средств удаленного администрирования сервера), попробуйте выполнить Get-ADPrincipalGroupMembership командлет:
Это должно не только перечислить группы безопасности, но и группы рассылки, если я правильно помню (и что также может быть полезно знать). Также заботится о вложенности, т. Е. Вы находитесь в группе A, которая находится в B, поэтому она показывает вам также, как и в B (снова я пытаюсь вспомнить детали здесь).
В Vista и Win7 изначально для XP вам, вероятно, понадобятся инструменты поддержки sp2 (что также потребовало бы наличия достаточных прав для их установки, конечно). http://www.microsoft.com/downloads/details.aspx?FamilyId=49AE8576-9BB9-4126-9761-BA8011FABF38&displaylang=en
Я думаю, что вы можете написать в окне cmd:
Замените USERNAME на свое имя пользователя без префикса домена.
Если у вас нет доступа к AD:
В конце вы увидите: пользователь входит в следующие группы безопасности
Просто запустите одно из следующего, одно для локальной группы, а другое для групп домена:
Затем проанализируйте выходные данные для искомого имени пользователя, так как в результате появится список пользователей в этой группе. Надеюсь это поможет.