ADユーザーのmemberOf属性にDomain Usersが無い

Active Directory上のユーザーが所属するグループを取得しようとしてmemberOf属性を参照しても、実際に所属するグループの内1つのグループ(大抵はDomain Users)が取得できません。

例えば次のようなWSHのコードを書いてもグループが1つ抜けてしまいます。

どうもmemberOf属性にはプライマリグループは記載されないという仕様のようです。プライマリグループというのはユーザーに対し1つ必ず指定しなければならないグループで、初期状態だとDomain Usersがプライマリグループとなります。

なのでプライマリグループについては別途自前で取得する必要があります。

例えば以下の様にattrにprimaryGroupIdを追加してプライマリグループのIDを取得しておきます。

そして別途以下の様にfiltersとattrを指定したクエリを実行し、グループとそのIDを取得してユーザーのprimaryGroupIdとグループのprimaryGroupTokenとを突き合わせることでプライマリーグループを取得してあげる必要があります。

filters = "(objectCategory=group)"
attr = "name,primaryGroupToken"

正直とてもめんどくさい仕様だなと思います。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です