当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 在域之间复制 AD 成员

作者:精品下载站 日期:2024-12-14 18:40:19 浏览:14 分类:玩电脑

在域之间复制 AD 成员


该组织有一个父域和子域。这两个域都包含交叉的成员和组。将成员从一个 AD 组复制到同一域中的另一个组时,一切正常。但是,当我们想要在域之间复制 AD 成员时,就会出现错误。在本文中,您将学习如何在父域和子域之间复制 AD 成员。

不同域的AD成员

如果您有多个成员,您可以在 Active Directory 用户和计算机 (ADUC) 中搜索并选择他们。但是,如果您有很多成员,比如说一千人,该怎么办?或者,如果您想精确复制成员怎么办?

从列表中读取另一个组并将它们添加到另一个组中并不是万无一失的。您可能会错过某个会员,但这不是您想要的。这就是您想要使用 PowerShell 的时候。

在我们的示例中,我们希望从 AD 组复制用户:

  • 来源:SG_IT_A

  • 目标:SG_IT_B

AD组成员位于不同的域中:

  • exoip.lan

  • 伦敦exoip.lan

[玩转系统] 在域之间复制 AD 成员

将 AD 成员复制到另一个组

运行 Get-AdGroupMember cmdlet 以获取源 AD 组中的成员。

PS C:\> Get-ADGroupMember -Identity "SG_IT_A" | Select-Object Name | Sort-Object Name

Name         
----         
Anne Thomson 
Brandon Clark
Jacob Turner 
Nico Hanssen 
SG_HR        

获取目标组并使用 ForEach-Object cmdlet 将成员添加到源 AD 组。

PS C:\> Get-ADGroupMember -Identity "SG_IT_A" | ForEach-Object {Add-ADGroupMember -Identity "SG_IT_B" -Members $_.distinguishedName}

运行上述命令后,输出显示以下错误:

Add-ADGroupMember :从服务器返回引用

Add-ADGroupMember : A referral was returned from the server
At line:1 char:57
+ ... ach-Object {Add-ADGroupMember -Identity "SG_IT_B" -Members $_.disting ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ResourceUnavailable: (SG_IT_B:ADGroup) [Add-ADGroupMember], ADReferralException
    + FullyQualifiedErrorId : ActiveDirectoryServer:8235,Microsoft.ActiveDirectory.Management.Commands.AddADGroupMember
 
Add-ADGroupMember : A referral was returned from the server
At line:1 char:57
+ ... ach-Object {Add-ADGroupMember -Identity "SG_IT_B" -Members $_.disting ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ResourceUnavailable: (SG_IT_B:ADGroup) [Add-ADGroupMember], ADReferralException
    + FullyQualifiedErrorId : ActiveDirectoryServer:8235,Microsoft.ActiveDirectory.Management.Commands.AddADGroupMember

为什么会出现此错误?在父域和子域之间复制成员的解决方案是什么?

在父域和子域之间复制成员

以管理员身份运行 PowerShell ISE。在父域上复制并运行以下脚本。

$SourceServer = "exoip.lan"
$SourceGroup = Get-ADGroup "SG_IT_A" -Server $SourceServer
$DestinationServer = "exoip.lan"
$DestinationGroup = Get-ADGroup "SG_IT_B" -Server $DestinationServer

$SourceMembers = Get-ADGroupMember -Identity $SourceGroup

foreach ($Member in $SourceMembers) {
Set-ADObject -Identity $DestinationGroup -Add @{member=$Member.distinguishedName} -Server $DestinationServer
}

验证 AD 成员是否已复制到组中。

[玩转系统] 在域之间复制 AD 成员

假设您要将 AD 成员从父域中的 SG_IT_A 复制到子域中的组 SG_IT_B。您必须在 PS 脚本中进行的唯一调整是更改 $DestinationServer 值。

$SourceServer = "exoip.lan"
$SourceGroup = Get-ADGroup "SG_IT_A" -Server $SourceServer
$DestinationServer = "london.exoip.lan"
$DestinationGroup = Get-ADGroup "SG_IT_B" -Server $DestinationServer

$SourceMembers = Get-ADGroupMember -Identity $SourceGroup

foreach ($Member in $SourceMembers) {
Set-ADObject -Identity $DestinationGroup -Add @{member=$Member.distinguishedName} -Server $DestinationServer
}

我们确实成功地在域之间复制了 AD 成员。

了解更多:使用 PowerShell 导出 AD 组成员 »

结论

您学习了如何在域之间复制 AD 成员。在本例中,它位于父域和子域之间。使用 PowerShell 脚本并调整值,以便您可以在域之间复制成员。当您想要加快工作速度并保持精确时,PowerShell 非常适合。

您喜欢这篇文章吗?您可能还喜欢使用 PowerShell 比较 AD 组成员。不要忘记关注我们并分享这篇文章。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯