angle-left

Копирование групп Active Directory через PowerShell между двумя пользователями

Зачастую возникает ситуация, когда необходимо скопировать членство пользователя в большом количестве групп 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

Коротко о себе:

Работаю инженером в компании Tune IT.

Ничего не найдено. n is 0