Поиск по сайту:

Как скопировать членство в группе AD другому пользователю в PowerShell


Когда вы создаете нового пользователя в домене Active Directory, иногда вам необходимо сделать его членом большого количества групп. Добавлять пользователя в группы вручную через консоль ADUC довольно утомительно, поэтому проще скопировать членство в группе от одного пользователя к другому с помощью PowerShell-скрипта. Это также удобно, когда сотрудник покидает отдел вашей компании и вам нужно назначить новому сотруднику те же группы безопасности AD.

Предположим, вам нужно скопировать членство в группе у пользователя

jsanti

и добавьте новую учетную запись пользователя (

a.adams

) в те же группы.

Для запуска следующих сценариев PoSh используется модуль Active Directory для PowerShell. Вы можете установить его как часть набора инструментов RSAT или скопировать и импортировать модуль AD PowerShell вручную без установки RSAT.

Получите список групп исходного пользователя с помощью командлета Get-ADUser:

$getusergroups = Get-ADUser -Identity jsanti -Properties memberof | Select-Object -ExpandProperty memberof

Чтобы добавить нового пользователя в те же группы, достаточно отправить список групп командлету Add-ADGroupMember по каналу:

$getusergroups | Add-ADGroupMember -Members a.adams -verbose

Чтобы добавить пользователя в группы безопасности домена, выполните команды под учетной записью администратора домена или учетной записью пользователя, которому делегированы права на добавление пользователей в группы AD.

Затем убедитесь, что новый пользователь был успешно добавлен в те же группы, что и исходный пользователь:

Get-ADUser -Identity a.adams -Properties memberof | Select-Object -ExpandProperty memberof

Вы можете использовать универсальный командлет Get-ADPrincipalGroupMembership , чтобы скопировать членство в группе любого объекта AD (пользователя, компьютера или группы).

$userSource= “jsanti"
$userTarget=”a.adams”
$sourceGroups = Get-ADPrincipalGroupMembership -Identity $userSource
Add-ADPrincipalGroupMembership -Identity $userTarget -MemberOf $sourceGroups

Вы можете использовать скрипт PowerShell, который автоматически записывает текстовый файл журнала, содержащий информацию о добавлении пользователя в группы:

$logfile="c:\LOG\CopyAdGroup.log"
$userSource= “jsanti"
$userTarget=”a.adams”
$Time = Get-Date
Add-content $logfile -value $Time -Encoding UTF8
Add-content $logfile -value "_______________"
Add-content $logfile -value "Copying AD groups from $userSource to $userTarget" -Encoding UTF8
$sourceGroups = (Get-ADPrincipalGroupMembership -Identity $userSource).SamAccountName
foreach ($group in $sourceGroups)
{
Add-content $logfile -value "Adding $userTarget to $group" -Encoding UTF8
try
{
$log=Add-ADPrincipalGroupMembership -Identity $userTarget -MemberOf $group
Add-content $logfile -value $log -Encoding UTF8
}
catch
{
Add-content $logfile $($Error[0].Exception.Message) -Encoding UTF8
Continue
}
}
Add-content $logfile -value "_______________"

Отслеживать добавление пользователей в группы AD можно в журналах безопасности контроллера домена.

Еще одна популярная задача — копирование всех пользователей из одной доменной группы в другую. Для этого вы можете использовать эту команду PowerShell:

Get-ADGroupMember "LA-GPO-Admins" | ForEach-Object {Add-ADGroupMember "LA-Server-Admins" -Members $_ }

Вы можете использовать другие способы автоматического добавления пользователя в группы AD в зависимости от его положения или другого атрибута пользователя, указанного в AD. В следующей статье представлен пример создания динамических групп Active Directory.

Статьи по данной тематике