Как скопировать участников из одной группы безопасности в другую группу безопасности в AD с помощью PowerShell v4?
Я относительно новичок в PowerShell и пытаюсь изучить его для проекта на работе с Active Directory. У меня есть задача сравнить членов двух разных групп безопасности в AD (обе группы находятся в одном подразделении) и скопировать участников из группы 2, которых нет в группе 1, в группу 1.
Я наткнулся на эту ссылку, которая показала, как сравнивать группы, но:
- Сегмент кода, указанный на этом веб-сайте, возвращает как членов из группы 1, которых нет в группе 2, так и участников из группы 2, которых нет в группе 1, что представляет собой гораздо больше информации, чем мне нужно
- Получив список, я не знаю, как его использовать, чтобы ввести команду или скрипт, чтобы скопировать этих членов в соответствующую группу.
2 ответа
Ну вот. Попробуйте приведенный ниже скрипт, который я написал для вашего требования.
#Input Parameters. Change these as per your requirement
$group1 = "Group1Name"
$group2 = "Group2Name"
$membersInGroup1 = Get-ADGroupMember $group1
$membersInGroup2 = Get-ADGroupMember $group2
if($membersInGroup1 -eq $null)
{
Add-ADGroupMember -Identity $group1 -Members $membersInGroup2
}
elseif($membersInGroup2 -ne $null)
{
$separateMembers = diff $membersInGroup1 $membersInGroup2
if($separateMembers -ne $null)
{
foreach($member in $separateMembers)
{
$currentUserToAdd = Get-ADUser -Identity $member.InputObject
Add-ADGroupMember -Identity $group1 -Members $currentUserToAdd
}
}
}
Дайте мне знать, если у вас возникнут какие-либо проблемы.
Учитывая две группы безопасности, DestinationGroup (Группа 1), SourceGroup (Группа 2):
Add-ADGroupMember -Identity "DistinguishedName of DestinationGroup" -Members (Get-ADGroupMember -Identity "DistinguishedName of SourceGroup" | Select-Object -ExpandProperty distinguishedName)
Я нашел другое решение, которое очень просто, и я не мог удержаться, чтобы поделиться со всеми вами:
Get-ADGroupMember -Identity GROUP-A | Add-ADPrincipalGroupMembership -MemberOf GROUP-B
Get-ADGroupMember
получает всех членов GROUP-A и трубы в Add-ADPrincipalGroupMembership
Командлет, который добавил входящих членов в GROUP-B.