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

时间:2016-04-28 17:23:18

标签: powershell active-directory powershell-v4.0

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

我遇到了this link,它展示了如何比较群组,但是:

  1. 本网站上列出的代码段返回第1组中不属于第2组的成员和第2组中不属于第1组的成员,这些信息比我需要的信息更多< / LI>
  2. 一旦我获得列表,我就不知道如何使用它来输入命令或脚本以将这些成员复制到适当的组。

3 个答案:

答案 0 :(得分:1)

你走了。尝试下面我为您的要求编写的脚本。

#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
      }
  }
}

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

答案 1 :(得分:0)

我找到了另一个非常容易的解决方案,我无法抗拒与大家分享:

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

Get-ADGroupMember将GROUP-A的所有成员和管道导入Add-ADPrincipalGroupMembership cmdlet,将传入的成员添加到GROUP-B。

Source

答案 2 :(得分:0)

给出两个安全组,即DestinationGroup(组1),SourceGroup(组2):

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