如何使用 PowerShell v4 将成员从一个安全组复制到 AD 中的另一个安全组?

How to copy members from one security group to another security group in AD using PowerShell v4?

我对 PowerShell 比较陌生,正在尝试为涉及 Active Directory 的工作项目学习它。我的任务是比较 AD 中两个不同安全组的成员(两个组都位于同一个 OU 中)并将组 2 中不在组 1 中的成员复制到组 1。

我发现 this link 展示了如何比较组,但是:

  1. 此网站上列出的代码段 returns 不在第 2 组中的第 1 组成员和不在第 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
      }
  }
}

如果您遇到任何问题,请告诉我。

我找到了另一个非常简单的解决方案,我忍不住与大家分享:

Get-ADGroupMember -Identity GROUP-A | Add-ADPrincipalGroupMembership -MemberOf GROUP-B

Get-ADGroupMember 获取 GROUP-A 的所有成员并通过管道传输到 Add-ADPrincipalGroupMembership cmdlet,该 cmdlet 将传入成员添加到 GROUP-B。

Source

给定两个安全组,DestinationGroup(第 1 组),SourceGroup(第 2 组):

Add-ADGroupMember -Identity "DistinguishedName of DestinationGroup" -Members (Get-ADGroupMember -Identity "DistinguishedName of SourceGroup" | Select-Object -ExpandProperty distinguishedName)