web-dev-qa-db-ja.com

信頼関係がある状況でグループメンバーをActiveDirectoryに照会すると、結果が不完全になります

グループのメンバーであるすべてのマシンのリストと、オペレーティングシステムの属性などの情報について、ActiveDirectoryにクエリを実行しようとしています。グループのすべてのメンバーの結果を取得できるわけではありません。

環境の詳細:

  • Windows Server2003および2008R2を実行する複数のドメインコントローラー。
  • ドメイン間の信頼関係を持つ複数のドメイン。
  • Windows Server 2008R2マシンからのADクエリの実行。
  • ADにクエリを実行するアカウントは、「ドメインのメンバーであり、そのサーバーに管理者権限を持つローカル管理者アカウント」です。
  • 一部のマシンは「信頼関係を介してグループのメンバーである」との情報があります。

現在のテストグループ「Group-99」には、FOO10とFOO11の2台のマシンがあります。

グループメンバーを照会すると、期待される結果、つまりグループ内のすべてのマシンのリストが表示されます。

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を照会しますが、受信できるのは2台のマシンのうちの1台のみです。

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 >

私たちの誰もがActiveDirectoryウィザードではないので、問題がどこにあるのかわかりません。 ActiveDirectoryの設定を調整することはできません。

必要な情報を取得する方法を理解するのを手伝っていただけますか、それとも取得できるかどうかを教えてください。

フォローアップの説明:私たちの完璧な結果は、グループメンバーがどのドメインにいるかに関係なく、すべてのグループメンバーの結果を返す1つのクエリを発行する方法です。何かのようなもの:

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

クエリしているオブジェクトは、別のドメインに存在しているように見えます。連絡するサーバーまたはドメインを指定せずに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

0
Ryan Newington

HopelessN00bですでに述べたように、commonNameがFOO10であるからといって、必ずしもsAMAccountNameがFOO10$であるとは限りません(可能性は非常に高いですが)。

これが当てはまるかどうかを確認し、オブジェクトを検索するのではなく、直接取得します。

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