“Get-ADGroupMember |对于不同域中的用户,Get-ADUser“失败”

运行以下cmdlet适用于组成员身份(Amer域中的组)中的所有用户,无论用户列出的域位于何处:

Get-ADGroupMember <group_name> -Server amer

但是,当试图通过管道到 Get-ADUser 来获取用户的详细信息时,我会在不同的域(EMEA)和组(AMER)中收到错误:

Get-ADGroupMember <group_name> | Get-ADUser

以下是在不同域中的每个用户之后返回的错误(EMEA域中的错误用户):

Get-ADUser : A referral was returned from the server
At line:1 char:46
+ Get-ADGroupMember GBL-Storage-Admin-NAS-L2-U|Get-ADUuser
+                                              ~~~~~~~~~~
    + CategoryInfo          : ResourceUnavailable: (CN=EMASAN-    WARNE...C=pfizer,DC=com:ADUser) [Get-ADUser], ADReferralException
    + FullyQualifiedErrorId : A referral was returned from the     server,Microsoft.ActiveDirectory.Management.Commands.GetADUser

我可以通过指定 get-aduser <user> -Server EMEA 查找每个错误用户,但是当有很多用户时,这是手动痛苦的 .

如何让管道 Get-ADUser 与其他域中的用户一起工作?

回答(3)

2 years ago

基本上,如果要追溯到其他域的引用,则需要查询包含global catalog的DC(请参阅here) . 持有全局目录的DC可以像this那样确定:

$gc = Get-ADForest 'example.org' | Select-Object -Expand GlobalCatalogs -First 1

其中 example.org 是您的林根域的FQDN .

2 years ago

为清楚起见,目前,本机cmdlet不具备此功能 . 选择全局编录不允许您追踪推荐 . 如您的链接中所定义 -

全局编录是一个分布式数据存储库,其中包含多域Active Directory域服务(AD DS)林中每个域中每个对象的可搜索部分表示形式 .

您仍然看起来最终得到了一个可以使用的用户对象,因此这是一个很好的解决方法 .

2 years ago

我只是通过检查推荐是什么来管理类似的问题

try {
    Get-ADUser -Filter {samAccountName -eq "SomeUser"} -SearchBase "DC=other_city,DC=example,DC=com" -Server example.com
} Catch {
    $_.Exception.Referral
}

从它的输出我得到了一个正确的服务器为我要求的用户 .