我正在尝试构建一个脚本,以标识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
答案 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:未执行请求的操作,因为用户尚未通过身份验证