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

6xfqseft  于 2022-11-10  发布在  Shell
关注(0)|答案(3)|浏览(188)

我对PowerShell比较陌生,正在尝试为一个涉及Active Directory的项目学习它。我的任务是比较AD中两个不同安全组的成员(这两个组位于同一OU中),并将组2中不在组1中的成员复制到组1中。
我偶然看到this link,它显示了如何比较组,但:
1.这个网站上列出的代码段既返回了不在组2中的组1的成员,也返回了不在组1中的组2的成员,这比我需要的信息多得多
1.获得列表后,我不知道如何使用该列表进入命令或脚本,以便将这些成员复制到适当的组。

e4yzc0pl

e4yzc0pl1#

这就是你要的。试试我为你的要求写的下面的脚本。


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

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

jpfvwuh4

jpfvwuh42#

我找到了另一个非常容易的解决方案,我忍不住要与大家分享:
Get-ADGroupMember -Identity GROUP-A | Add-ADPrincipalGroupMembership -MemberOf GROUP-B
Get-ADGroupMember获取组A的所有成员,并通过管道传输到将传入成员添加到组B的Add-ADPrincipalGroupMembership cmdlet。
Source

ygya80vv

ygya80vv3#

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

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

相关问题