Как скопировать участников из одной группы безопасности в другую группу безопасности в AD с помощью PowerShell v4?

Я относительно новичок в PowerShell и пытаюсь изучить его для проекта на работе с Active Directory. У меня есть задача сравнить членов двух разных групп безопасности в AD (обе группы находятся в одном подразделении) и скопировать участников из группы 2, которых нет в группе 1, в группу 1.

Я наткнулся на эту ссылку, которая показала, как сравнивать группы, но:

  1. Сегмент кода, указанный на этом веб-сайте, возвращает как членов из группы 1, которых нет в группе 2, так и участников из группы 2, которых нет в группе 1, что представляет собой гораздо больше информации, чем мне нужно
  2. Получив список, я не знаю, как его использовать, чтобы ввести команду или скрипт, чтобы скопировать этих членов в соответствующую группу.

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.

Источник

Другие вопросы по тегам