包含具有外部域成员的组的Get-ADGroupMember

时间:2019-05-03 14:24:06

标签: powershell active-directory

我正在尝试构建一个脚本,以标识Administrators组的所有成员和嵌套成员。我公司目前有20多个域,其中大多数未集成。相反,我们只是在收购后在域之间建立信任关系。问题在于这些域的Administrators组通常具有来自外部但受信任域之一的成员。如果我运行Get-ADGroupMember,我没有问题,但是如果我运行Get-ADGroupMember -Recursive,则会出错。我假设问题出在PS试图寻找位于我们受信任域中的一个组的嵌套成员关系,而仅寻找Administrators组的当前域。

PowerShell脚本(带有示例域的替换服务器):

$ADGroup = Get-ADGroup -identity "administrators" -Server example.domain.com
Get-ADGroupMember -Identity $ADGroup -Server example.domain.com -Recursive | Out-GridView

结果错误消息(带有示例域的替换服务器):

PS H:\> $ADGroup = Get-ADGroup -identity "administrators" -Server example.domain.com
Get-ADGroupMember -Identity $ADGroup -Server example.domain.com -Recursive | Out-GridView
Get-ADGroupMember : There is no such object on the server
At line:2 char:1
+ Get-ADGroupMember -Identity $ADGroup -Server example.domain.com -Recursive | Out- ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (CN=Administrato...e,DC=domain,DC=com:ADGroup) [Get-ADGroupMember], ADIdentityNotFoundExc 
   eption
    + FullyQualifiedErrorId : There is no such object on the server,Microsoft.ActiveDirectory.Management.Commands.GetADGroupMember

1 个答案:

答案 0 :(得分:1)

来自Get-ADGroupMember的文档:

  

注释

     

当组中有成员时,此cmdlet将不起作用   不同的林,并且该林没有Active Directory Web   服务正在运行。

是的,您的假设是正确的。 (没有确切的错误消息)您一次只能枚举一个域的成员身份。即

Get-ADGroup MyGroup -Server ContosoDC01 | Get-ADGroupMember -Recursive -Server ContosoDC01

添加-Server突出表明,您一次只能指定一个可以枚举的域。确实,一个向上的Get-ADGroupMember将列出用户/组的专有名称和SID,包括来自其他域的用户/组的SID。但这就是AD存储的所有内容,即用户/组的SID。它不存储成员资格。

要获得成员资格,需要另一个 separate ,调用另一个域进行枚举;而且在大多数情况下,未将跨域权限设置为允许您当前的帐户访问另一个域,您会得到:

  

Get-ADGroupMember:未执行请求的操作,因为用户尚未通过身份验证