Powershell - (Active Directory模块) - Get-ADGroupMember仅适用于我的域中的组

时间:2013-10-24 18:36:14

标签: powershell active-directory active-directory-group

我有点尴尬地说我花了多少时间在这上面!

使用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 ...

-------------------------------------------- -------------------------------------------------- -----------

有几点需要注意:

  • “所有主管”的小组范围是通用的(不确定是否可以 差异)
  • 我的电脑和AD用户帐户目前在 west.ad.company.com
  • 我可以成功使用Get-AdGroupMember,只要它在同一个地方 域名作为我
  • 我可以成功使用 get-aduser -identity ADUserID -server ba.ad.ssa.gov

-------------------------------------------- -------------------------------------------------- -----------

最后: 我还想知道如何在Powershell中的“整个目录”中使用ADUC中的用户和组进行搜索(理想情况下,我可以使用一个简单的函数或脚本来快速搜索命令行执行此操作;而不是依赖于在ADUC GUI应用程序上)。当然,必须有一种方法可以使用纯PowerShell来做到这一点!

4 个答案:

答案 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