我有点尴尬地说我花了多少时间在这上面!
使用ADUC GUI(Active Directory用户和计算机)在 east.ad.company.com 中找到 All Supervisors 组时,我没有任何问题。结果会在几秒钟内出现。
但是,如果我尝试使用Active Directory模块执行相同的操作:
Get-ADGroupMember“所有主管”--server east.ad.company.com
产生错误:
.... FullyQualifiedErrorId:找不到具有标识的对象:'所有主管'位于:'DC = east,DC = ad,DC = company,DC = com'。,Microsoft.ActiveDirectory.Management。 Commands.GetADGroupMember ... 的
-------------------------------------------- -------------------------------------------------- -----------
有几点需要注意:
-------------------------------------------- -------------------------------------------------- -----------
最后: 我还想知道如何在Powershell中的“整个目录”中使用ADUC中的用户和组进行搜索(理想情况下,我可以使用一个简单的函数或脚本来快速搜索命令行执行此操作;而不是依赖于在ADUC GUI应用程序上)。当然,必须有一种方法可以使用纯PowerShell来做到这一点!
答案 0 :(得分:2)
搜索“整个目录”称为全局编录搜索,因此您只需告诉PowerShell使用全局编录。它在端口3268上的DC上找到(而不是389)。并非所有域控制器都必须拥有全局编录 - 由您的管理员决定。您可以使用
查询GC服务器(Get-ADForest).GlobalCatalogs
我只有一个域名,所以我无法测试,但我相信你会想要这样的东西:
Get-ADGroupMember "All Supervisors" -server dc1.east.ad.company.com:3268 -SearchBase ad.company.com
假设您的林根是ad.company.com。
答案 1 :(得分:2)
Get-ADObject
有您要找的-SearchBase parameter
。将结果(组对象)传递给Get-ADGroupMember
以列出成员。哦,'name -eq "foo"'
可以而且可能应该被调整为一个独特的属性,否则你可以列出任意数量的团体成员资格。
Get-ADObject -Filter { 'ObjectClass -eq "group"' -and 'name -eq "All Supervisors"' } -SearchBase 'DC=east,DC=ad,DC=company,DC=com' | Get-ADGroupMember
答案 2 :(得分:2)
编辑: 之前的答案没有用。将Get-ADObject与Get-ADGroupMembers一起使用会导致与管理控制台位于不同域中相关的错误。
我研究了ADGroup对象的属性并找到了.members属性。以下代码段将列出域“east.ad.company.com”中“所有主管”组成员的DistingushedName。如果您从域中运行,则很可能会离开服务器“east.ad.company.com”。
所以试试:
Get-ADGroup "All Supervisors" -Server east.ad.company.com -Property Members | Select -ExpandProperty Members
答案 3 :(得分:1)
发现您可以跨域使用get-adgroupmember
列出通用群组成员。
只需以-server
名称传递其他域名。
get-adgroupmember RTCUniversalServerAdmins -server the.other.dom | ft -a -prop name,samAccountName