Скопировать группы Active Directory другому пользователю через PowerShell

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

Допустим, вам нужно скопировать группы пользователя r.radojic и добавить в эти же группы нового пользователя a.novak.

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

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

$getusergroups = Get-ADUser -Identity r.radojic -Properties memberof | Select-Object -ExpandProperty memberof

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

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

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

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

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

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

$userSource= “r.radojic"
$userTarget=”a.novak”
$sourceGroups = Get-ADPrincipalGroupMembership -Identity $userSource
Add-ADPrincipalGroupMembership -Identity $userTarget -MemberOf $sourceGroups

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

$logfile="c:psCopyAdGroup.log"
$userSource= “r.radojic"
$userTarget=”a.novak”
$Time = Get-Date
Add-content $logfile -value $Time -Encoding UTF8
Add-content $logfile -value "_______________"
Add-content $logfile -value "Копирование групп AD с пользователя $userSource на $userTarget" -Encoding UTF8
$sourceGroups = (Get-ADPrincipalGroupMembership -Identity $userSource).SamAccountName
foreach ($group in $sourceGroups)
{
Add-content $logfile -value "Добавление пользователя $userTarget в группу $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 в журналах контроллеров домена.

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

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

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

admin

Share
Published by
admin

Recent Posts

Консоль удаленного рабочего стола(rdp console)

Клиент удаленного рабочего стола (rdp) предоставляет нам возможность войти на сервер терминалов через консоль. Что…

2 недели ago

Настройка сети в VMware Workstation

В VMware Workstation есть несколько способов настройки сети гостевой машины: 1) Bridged networking 2) Network…

2 недели ago

Логи брандмауэра Windows

Встроенный брандмауэр Windows может не только остановить нежелательный трафик на вашем пороге, но и может…

2 недели ago

Правильный способ отключения IPv6

Вопреки распространенному мнению, отключить IPv6 в Windows Vista и Server 2008 это не просто снять…

2 недели ago

Ключи реестра Windows, отвечающие за параметры экранной заставки

Параметры экранной заставки для текущего пользователя можно править из системного реестра, для чего: Запустите редактор…

2 недели ago

Как управлять журналами событий из командной строки

В этой статье расскажу про возможность просмотра журналов событий из командной строки. Эти возможности можно…

2 недели ago