С помощью модуля ActiveDirectory PowerShell вы можете запрашивать группы AD с помощью команды Get-AdGroup, добавлять, обновлять и удалять группы и их участников. В этой статье блога вы узнаете немного о командлетах PowerShell для групп Active Directory и получите множество примеров для справки.
Командлеты групп Active Directory
После установки модуля ActiveDirectory PowerShell вам будут доступны несколько командлетов для управления группами.
Cmdlet Name | Description |
Add-ADGroupMember | Used to add members to an AD group. |
Add-ADPrincipalGroupMembership | Used to add an AD principal to AD groups. |
Get-ADGroup | Used to return a group or groups from AD. |
Get-ADGroupMember | Used to return the members of an AD group. |
Get-ADPrincipalGroupMembership | Used to get the groups an AD principal is a member of. |
New-ADGroup | Used to create a new AD group. |
Remove-ADGroup | Used to delete an AD group. |
Remove-ADGroupMember | Used to remove members from an AD group. |
Remove-ADPrincipalGroupMembership | Used to remove an AD principal from AD groups. |
Set-ADGroup | Used to set the properties of an AD group. |
С помощью этих командлетов и немного PowerShell-кунг-фу вы сможете управлять каждым аспектом группы Active Directory с помощью PowerShell.
Найти участников группы с помощью Get-ADGroupMember
Команда Get-AdGroupMember
возвращает всех участников группы.
Вместо этого вы можете использовать свойство memberOf
для конкретного пользователя с помощью командлета Get-Aduser
. Для освежения памяти о том, как создавать фильтры, ознакомьтесь с руководством “Изучение фильтров Active Directory и LDAP в PowerShell”.
Ниже приведены два примера.
Это возвращает коллекцию объектов ADPrincipal.
Экспорт участников группы в файл CSV
Это экспортирует имя, фамилию и адрес электронной почты каждого пользователя. Перенаправьте результаты из Get-ADGroupMember
в Get-ADUser
, потому что это объекты ADPrincipal, которые не имеют всех свойств, которыми обладают объекты ADUser.
Обратите внимание на использование параметра
NoTypeInformation
вExport-CSV
, чтобы убедиться, что CSV-файл совместим с другими приложениями.
Найдите группы без участников с помощью Get-ADGroup
Используйте Get-AdGroup
, чтобы найти группы с использованием фильтров. Два примера ниже.
Создайте новую группу безопасности с помощью New-ADGroup
Вы создаете новую группу безопасности, используя команду New-AdGroup
.
Если параметр Path
не указан, новая группа будет создана в контейнере Users. Область группы должна быть либо DomainLocal
, либо Global
, либо Universal
.
Создайте новую группу распределения с помощью New-ADGroup
Используйте New-AdGroup
снова, чтобы создать группу распределения. В этот раз выберите GroupCategory
Distribution
.
Добавьте участников в группу с помощью Add-ADGroupMember
Добавление пользователей в группу Active Directory с помощью PowerShell можно сделать с помощью cmdlet Add-AdGroupMember
или cmdlet Add-ADPrincipalGroupMembership
.
Эта команда указывает группу как Identity.
Эта команда указывает AD-принципала как Identity.
Запишите в свойство Notes
группы с помощью Set-AdGroup
Поле, обозначенное как Notes в ADUC, представлено свойством Info
, возвращаемым из Get-AdGroup
.
Сначала найдите группу для изменения, установите свойство Info
, а затем используйте Set-AdGroup
, чтобы внести изменения в AD.
Удалите участников группы с помощью Remove-ADGroupMember
Как и все cmdlet в PowerShell, вы можете использовать параметр Confirm
, чтобы получить запрос перед внесением изменений. Это поведение также применяется к cmdlet Remove-AdGroupMember
и Remove-ADPrincipalGroupMembership
.
Ниже вы можете удалить участников группы без подтверждения.
Или вы можете выбрать удаление участников группы с подтверждением, используя параметр Confirm
.
Удалите группу с помощью Remove-ADGroup
Удалите группу без подтверждения и с подтверждением.
Переименуйте группу с помощью Rename-ADObject
Вы можете переименовать группу одной строкой, используя Rename-ADObject
.
Получите количество групп с помощью Get-ADGroup
Вам нужно узнать общее количество групп, возвращаемых с помощью Get-AdGroup
? Используйте свойство Count
.
Найдите группы с менеджером с помощью Get-ADGroup
Отфильтруйте все группы, у которых назначен менеджер, с использованием Get-AdGroup
и хорошо разработанного фильтра LDAP.
Для этого нет эквивалента фильтра PowerShell.
Найдите группы, управляемые определенным пользователем с помощью Get-ADGroup
Улучшите свои навыки фильтрации и найдите все группы, управляемые определенным пользователем, используя либо фильтр PowerShell, либо фильтр LDAP.
Установите менеджера группы с помощью Set-ADGroup
Вкладка Управляется в ADUC для групп позволяет назначить ответственного за членство в группе. Это не означает, что менеджер может автоматически изменять членство в группе. Для этого необходимо изменить разрешения безопасности для свойства Member соответствующей группы.
Действие установки флажка Менеджер может обновлять список членов для группы в Пользователи и компьютеры Active Directory (ADUC) изменяет разрешения, позволяющие это.

Используйте команду Set-ADGroup
для установки атрибута ManagedBy:
Обновление списка контроля доступа требует нескольких дополнительных шагов. Следующий фрагмент кода предоставляет пользователю Кристин Диаз возможность управлять членством в группе. bf9679c0-0de6-11d0-a285-00aa003049e2 – это GUID свойства Member
группы.
Если Кристин также назначена менеджером группы, флажок будет установлен. Если нет, то Кристин все равно сможет управлять членством в группе, но не будет отображаться в ADUC в качестве менеджера.
Найдите утечки и небезопасные пароли в вашем активном каталоге, проверив их по списку паролей NCSC.
Найдите все группы безопасности
Перечислите все группы безопасности в активном каталоге с помощью PowerShell, ограничив свой запрос только группами безопасности с помощью этих двух примеров. Что такое LDAP-фильтр, спрашиваете вы? Узнайте все о LDAP-фильтрах.
Найдите группы распространения
Используйте PowerShell для перечисления групп Active Directory (распространение), исключая группы безопасности с помощью этих двух примеров.
Найдите членство групп для пользователя с помощью Get-ADPrincipalGroupMembership
Обратите внимание, что для этой команды требуется доступ к глобальному каталогу.
Найдите группы в OU, не включая подчиненные OU
Добейтесь детализации, используя параметр SearchBase
, чтобы ограничить поиск до одного OU с помощью этих двух примеров.
Найдите группы в OU, включая любые подчиненные OU
Нужно найти все группы в дочерних OU? Используйте SearchScope
SubTree
.
Сводка
Это завершает наш пример управления группами AD с помощью PowerShell. Возьмите несколько из них, попробуйте в своей организации и начните автоматизировать!