Зачастую возникает ситуация, когда необходимо скопировать членство пользователя в большом количестве групп AD. В этом случае можно поступить следующим образом: либо вручную добавлять его во все группы(долго, неудобно, велика вероятность пропустить что-то), либо создать копию существующего пользователя и переименовать его.
В этой же заметке я хочу коснуться возможности копирования членства в группах, используя командлеты PowerShell , а именно входящие в пакет администрирования RSAT .
Можно написать универсальный скрипт, и использовать его каждый раз при возникновении аналогичных задач- это будет еще быстрее и проще, чем копирование пользователя, используя оснастку ОС.
Итак, для начала надо получить список групп пользователя, членом которых он является:
$usergroups = Get-ADUser -Identity v.pupkin -Properties memberof | Select-Object -ExpandProperty memberof
где v.pupkin - нужный нам пользователь.
Командлет Add-ADGroupMember может быть использован для добавления другого пользователя в несколько групп, достаточно передать ему значение $usergroups
Как это выглядит:
$getusergroups | Add-ADGroupMember -Members i.ivanov -verbose
где i.ivanov - второй пользователь.
Проверим результат:
Get-ADUser -Identity i.ivanov -Properties memberof | Select-Object -ExpandProperty memberof
Чтобы каждый раз не вводить команды, можно написать подобный скрипт:
$SourceUser= “v.pupkin"
$TargetUser=”i.ivanov”
$sourceGroups = Get-ADPrincipalGroupMembership -Identity $SourceUser
Add-ADPrincipalGroupMembership -Identity $TargetUser -MemberOf $sourceGroups
В этом случае достаточно просто будет задать имена пользователей при исполнении скрипта. Можно также сделать это в интерактивном режиме, когда будет запрашиваться ввод имени пользователей при каждом запуске скрипта, но для подобной задачи это видится мне избыточным.
Также возможно возникновение противоположной задачи - копирования всех членов группы AD в другую. В этом случае все совсем просто:
Get-ADGroupMember "Admins" | ForEach-Object { Add-ADGroupMember "Admins1" -Members $_ }
Пользователи из группы Admin будут скопированы в группу Admins1.
Использованные материалы и источники: https://docs.microsoft.com/en-us/powershell/module/addsadministration/?view=win10-ps