在具有信任关系的情况下查询 Active Directory 中的组成员时结果不完整

在具有信任关系的情况下查询 Active Directory 中的组成员时结果不完整

我们正在尝试查询 Active Directory 以获取属于某个组的所有计算机的列表,以及操作系统属性等信息。我们无法获得该组每个成员的结果。

环境详情:

  • 多个域控制器,运行 Windows Server 2003 和 2008 R2。
  • 多个域,域之间存在信任关系。
  • 从 Windows Server 2008 R2 计算机运行 AD 查询。
  • 查询 AD 的帐户是“本地管理员帐户,域成员,在该服务器上具有管理员权限”。
  • 我们获悉,一些机器“通过信任关系成为该组的成员”。

我们当前的测试组“Group-99”有两台机器:FOO10 和 FOO11。

当我们查询组成员时,我们收到预期的结果,即组中所有机器的列表:

PS > dsquery group -name "Group-99" | dsget group -members

"CN=FOO10,OU=Domain Controllers,DC=activedirdev,DC=widgetco,DC=com"
"CN=FOO11,OU=Portland,OU=Domain Controllers,DC=activedirdev,DC=widgetco,DC=com"

然后,我们查询 DNSHostName 和 OperatingSystem,但只能收到两台机器中的一台的结果:

PS > dsquery * -filter "(&(objectClass=Computer)(objectCategory=Computer)(sAMAccountName=FOO11$))" -attr sAMAccountName operatingSystem
sAMAccountName    operatingSystem
FOO11$            Windows Server 2008 R2 Standard

PS > dsquery * -filter "(&(objectClass=Computer)(objectCategory=Computer)(sAMAccountName=FOO10$))" -attr sAMAccountName operatingSystem
PS >

我们都不是 Active Directory 专家,所以我们不确定问题出在哪里。无法调整 Active Directory 设置。

您能帮助我们弄清楚如何获取我们需要的信息吗,或者是否有可能获取这些信息?

后续澄清:我们理想的结果是发出一个查询,该查询将返回所有群组成员的结果,无论他们位于哪个域。例如:

PS > dsquery (stuff)
CN        operatingSystem
FOO10     Windows Server 2008 R2 Standard
FOO11     Windows Server 2003

答案1

您正在查询的对象似乎存在于另一个域中。当您运行 DSQuery 时未指定要联系的服务器或域,您将自动绑定到您登录的域。此对象可能位于另一个域中。

要获取丢失的对象,请尝试

dsquery * -filter "(&(objectClass=Computer)(objectCategory=Computer)(sAMAccountName=FOO10$))" -attr sAMAccountName operatingSystem -d activedirdev.widgetco.com

参考:http://technet.microsoft.com/en-us/library/cc754232.aspx

答案2

正如 HopelessN00b 已经指出的那样,拥有 commonNameFOO10并不一定意味着 sAMAccountName 也是如此FOO10$(尽管很有可能)。

要确定是否是这种情况,请直接检索对象,而不是搜索它:

dsget computer "CN=FOO10,OU=Domain Controllers,DC=activedirdev,DC=widgetco,DC=com" -samid

相关内容