Для управления группами в 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:
Get-Module -Listavailable
Как вы видите, модуль ActiveDirectory загружен. Если нет – импортируйте его командой:
Import-Module activedirectory
Выведем список командлетов PowerShell, позволяющих управлять группами AD:
Get-Command -Module ActiveDirectory -Name "*Group*"
Доступно 11 командлетов:
Создадим новую группу безопасности в указанном контейнере ( OU ) Active Directory с помощью команды New-ADGroup :
New-ADGroup "TestADGroup" -path 'OU=Groups,OU=Moscow,DC=corp,dc=remontka,DC=ru' -GroupScope Global -PassThru –Verbose
С помощью атрибута Description можно задать описание группы, а с помощью DisplayName изменить отображаемое имя.
Параметром GroupScope можно задать один из следующих типов групп:
Создать группу распространения можно так:
New-ADGroup "TestADGroup-Distr" -path 'OU=Groups,OU=Moscow,DC=corp,dc=remontka,DC=ru' -GroupCategory Distribution -GroupScope Global -PassThru –Verbose
При создании группы AD можно сразу заполнить любые атрибуты. Проще всего задать значения различных атрибутов группы через HashTable:
$attrs = @{"mail"=" [email protected] ";"displayname"="ALL MSK Admins"}
New-ADGroup -Name MSKAdmins -GroupScope Global -OtherAttributes $attrs
Добавить пользователей в группу Active Directory можно с помощью командлета Add- AdGroupMember . Добавим в новую группу двух пользователей:
Add-AdGroupMember -Identity TestADGroup -Members user1, user2
Если нужно добавить в группу сразу большое количество пользователей, вы можете сохранить список учетных записей в CSV файл, затем импортировать данный файл и добавить каждого пользователя в группу с помощью простого PowerShell скрипт.
В нашем примере используется следующий формат CSV файла (список пользователей по одному в строке, имя столбца – users)
Import-CSV .users.csv -Header users | ForEach-Object {Add-AdGroupMember -Identity ‘TestADGroup’ -members $_.users}
Чтобы получить всех членов одной группы (groupA) и добавить их в другую группу (groupB), воспользуйтесь такой командой:
Get-ADGroupMember “GroupA” | Get-ADUser | ForEach-Object {Add-ADGroupMember -Identity “Group-B” -Members $_}
Если нужно скопировать в новую группу и членов всех вложенных групп (рекурсивно), нужно воспользоваться такой командой:
Get-ADGroupMember -Identity “GroupA” -Recursive | Get-ADUser | ForEach-Object {Add-ADGroupMember -Identity “GroupB” -Members $_}
В версии Active Directory, представленной в Windows Server 2016 можно использовать функцию временного членства в группах безопасности AD ( Temporary/ Time Based Group Membershi p ). Чтобы временно добавить пользователя в группу AD (например, на 2 часа), выполните команду:
$ttl = New-TimeSpan -Hours 2
Add-ADGroupMember -Identity "Domain Admins" -Members a.ivanov -MemberTimeToLive $ttl
Через 2 часа этот пользователь будет автоматически удален из данной группы.
Для удаления пользователей из группы AD нужно использовать командлет Remove-ADGroupMember. Удалим из группы двух пользователей:
Remove-ADGroupMember -Identity TestADGroup -Members user1, user2
Подтвердите удаление пользователей, нажав Y -> Enter.
Если нужно удалить из группы пользователей по списку из CSV файла, воспользуйтесь такой командой:
Import-CSV .users.csv -Header users | ForEach-Object {Remove-ADGroupMember -Identity ‘TestADGroup’ -members $_.users}
Для получения информации о группе домена AD используйте командлет Get-ADGroup :
Get-ADGroup 'TestADGroup'
Даная команда выводит информацию об основных атрибутах группы (DN, тип группы, имя, SID группы ). Чтобы вывести значение всех атрибутов группы, выполните команду:
Get-ADGroup 'TestADGroup' -properties *
Как вы видите, теперь стали отображаться такие атрибуты, как время создания и модификации группы, описание и т.д.
Вы можете использовать командлет Get-ADGroup для поиска групп в AD по шаблону (маске). Например, следующие команды можно использовать чтобы найти все группы AD, в имени которых содержится фраза admins
Get-ADGroup -LDAPFilter “(name=*admins*)” | Format-Table
Или
Get-ADGroup -Filter {name -like "*admins*"} -Properties Description,info | Select Name,samaccountname,Description,info
(в первой команде используется LDAP фильтр, во второй фильтр по атрибуту AD):
С помощью Get-ADGroup можно получить список членов группы (хранится в атрибуте members):
Get-ADGroup -Identity "Domain Admins" -Properties members | Select-Object -ExpandProperty members
Однако для получения списка членов группы гораздо удобнее использовать другой командлет — Get-ADGroupMember.
Командлет Get-ADGroupMember позволяет получить членов группы AD. Это могут быть пользователи, компьютеры, другие группы или учетные записи служб (MSA/gMSA) .
Вы можете вывести на экран список пользователей в доменной группе:
Get-ADGroupMember 'TestADGroup'
Чтобы оставить в результатах только имена пользователей, выполните:
Get-ADGroupMember 'TestADGroup'| ft name
Если в данную группу включены другие группы домена, чтобы вывести полный список членов, в том числе всех вложенных групп, воспользуйтесь параметром Recursive .
Get-ADGroupMember ‘server-admins' -recursive| ft name
Чтобы экспортировать список пользователей, состоящих в определённой группе в CSV файл (для дальнейшего использования в Excel), выполните команду:
Get-ADGroupMember ‘server-admins' -recursive| ft samaccountname| Out-File c:psadmins.csv
Вы можете экспортировать в текстовый файл и другие атрибуты пользователей AD. Для получения атрибутов пользователя используется командлет Get-ADUser . Например, кроме имени учетной записи, можно вывести UserPrincipalName , должность и телефон пользователя группы:
Get-ADGroupMember -Identity ’server-admins’ -recursive| foreach { Get-ADUser $_ -properties UserPrincipalName, title, OfficePhone|Select-Object title, OfficePhone }
Посчитать количество пользователей в группе можно так:
(Get-ADGroupMember -Identity 'domain admins').Count
Чтобы найти список пустых групп в определенном OU, воспользуйтесь такой командой:
Get-ADGroup -Filter * -Properties Members -searchbase “OU=Moscow,DC=corp,dc=remontka,DC=ru” | where {-not $_.members} | select Name
С помощью командлета Get-ADGroupMember можно создать простой PowerShell скрипт для оповещения администратора, если кто-то добавил нового пользователя в определенную группу AD.
Командлет Set-ADGroup позволяет изменить свойства (атрибуты) любой группы Active Directory. Например, можно изменить описание и название группы:
Set-ADGroup -Identity MSKAdmins -Description “New Admin Group Description”
или так:
Get-ADGroup -Identity MSKAdmins | Set-ADGroup -Description “New Admin Group Description v2”
Скрыть определённую группу из адресной книги Exchange :
Set-ADGroup –id mskadmins -replace @{hideDLMembership=$true}
Можно изменить сразу несколько параметров группы. Список изменения удобно задать через HashTable:
Список атрибутов можно получить так или в консоли ADUC на вкладке редактора атрибутов
$attrs = @{"mail"=" [email protected] ";"displayname"="ALL MSK Admins"}
Set-ADGroup -Identity MSKAdmins –Add $attrs
Чтобы удалить групп в Active Directory используется командлет Remove-ADGroup :
Remove-ADGroup -Identity MskSales
При удалении группы появляется запрос подтверждения удаления. Чтобы отключить подтверждение удаления, добавьте параметр Confirm:
Remove-ADGroup -Identity MskSales –Confirm:$false
Get-ADObject -Filter {Deleted -eq $True -and ObjectClass -eq 'group' -and Name -like '*MskSales*' } –IncludeDeletedObjects| Restore-ADObject –verbose
Как менялся логотип Apple на протяжении многих лет. Логотип Apple — это не просто символ,…
Security Boot Fail при загрузке Acer — решение проблемы При загрузке ноутбука Acer с флешки,…
Ноутбук не включается — варианты решения Если при попытке включить ноутбук вы обнаруживаете, что он…
The AC power adapter wattage and type cannot be determined — причины и решение При…
Свистит или звенит блок питания компьютера — причины и решения Некоторые владельцы ПК могут обратить…
Мигает Caps Lock на ноутбуке HP — почему и что делать? При включении ноутбука HP…