Windows TIPS
[Active Directory]
  Windows TIPS TOPへ
Windows TIPS全リストへ
内容別分類一覧へ

Active Directoryでグループのメンバー・アイコンが白髪になる

畑中 哲
2005/10/22
 
対象OS
Windows 2000
Windows Server 2003
[Active Directoryユーザーとコンピュータ]ツールでユーザー一覧を表示すると、あるときから、ユーザーを示す人のアイコンが白髪になってしまうことがある。
これは障害などではなく、メンバー数が多くなったときに、情報取得の負担を軽減するための仕様である。
 
解説

 Active Directoryの導入後、ドメインが徐々に成長して規模が大きくなってくると、ある日を境に奇妙なグループ・メンバー・アイコンを目にするようになる。まずは、おかしくなる前の通常のアイコンを見ておこう。

通常のグループ・メンバー表示
[Active Directoryユーザーとコンピュータ]でグループのプロパティを開き、[メンバ]タブを表示したところ。これは通常のメンバー・アイコン。別のドメインのユーザーや、無効なアカウントなどがアイコンで分かるようになっている。
  外部ドメインのユーザー。
  アカウントが無効になっているユーザー。
  通常のユーザー。

 しかしある日を境に、突然次のような表示になる場合がある。

見慣れないグループ・メンバー表示
ある日突然、メンバー・アイコン表示が白髪(しらが)になってしまった(髪の毛の部分が白くなっている)。すべて同じ「白髪」アイコンなので、ほかのドメインのユーザー、無効なユーザーなどの区別も付かない。

 この変化を初めて経験した管理者は、Active Directoryの機能に何か問題が発生しているのではと心配になるかもしれないが、これはユーザー・インターフェイスが変更されただけで、Active Directoryの動作には何ら支障はない。

 実は最初のダイアログはグループ・メンバーが500人の場合のもの、2つめの白髪になってしまったダイアログは、グループ・メンバーが501人の場合のものである。グループ・メンバーが501人以上になると、性能上の理由から一覧表示の方法が変更され、それをはっきりと管理者に提示するためにアイコン表示が白髪になる。ただし意味が分かりにくいので、初めて見たときはびっくりするだろう。本稿では、このようなインターフェイスになっている理由と、デフォルト設定(500人までは通常表示、など)の変更方法などについてまとめる。

なぜ、500人を超えると白髪アイコンになるのか?

 いま述べたとおり、グループ・メンバーが500人を超えると、アイコンが白髪になる。前出の2つのダイアログ(通常アイコンと白髪アイコンの画面)を比較すると、通常アイコン(白髪になっていないアイコン)のグループの画面では、アイコンの種類が1つではなく、複数あることが分かる。具体的には、EastUser001は外部ドメインのユーザーを示すアイコン、WestUser001はアカウントが無効なユーザーのアイコンになっている。

 一方、白髪のグループの方の画面では、アイコンにそのような区別がなく、どのメンバーも同じ白髪アイコンになっている。実はこの白髪アイコンは、メンバーの種類が分からないことを示すため、淡色表示になっているのだ。

 この理由は、一覧表示の性能低下を防ぐためである。当然ながら、各メンバーの種類に応じたアイコンを表示するためには、各メンバーの種類が分からなければならない。グループのメンバーの一覧リストは、簡単なLDAPクエリ(Active Directoryに対する問い合わせの一手法)で取得できる。しかしこのクエリで取得できる一覧には、各メンバーの種類の情報までは含まれていない。

 そのため、メンバーの種類を取得するには、メンバーの一覧を取得した後で、メンバーそれぞれについて別途LDAPクエリを発行しなければならない。メンバーが少ないときには問題はないが、メンバーの数が多いときには、クエリにかかる負担(プロセッサ負荷やネットワーク・トラフィック、レスポンスまでの時間)もそれだけ大きくなる。

 このような理由から、Active Directoryの管理ツールでは、メンバー数が500を超える場合には、メンバー種類判別のクエリを省略する仕様になっている(デフォルト設定時)。この結果、メンバーが500人を超えたときには、メンバーの種類をアイコンで表すことができず、代わりに白髪アイコンを表示しているというわけだ。

内部動作の違い

 メンバーが500人以下と、501人以上の場合の内部処理は次のように切り替わる。

メンバーが500人以下の場合と、501人以上の場合の処理の違い
メンバーが501人以上の場合には、各メンバーの種類の情報は取得せず、すべてのメンバーを白髪アイコンで表示する。

 このようにメンバーが500人以下の場合には、LDAPクエリでグループのメンバー一覧を取得した後、一定の数(既定では35。変更方法などは後述)のメンバーをひとまとめにして、LDAPクエリを実行し、メンバーの種類(objectClass属性)や状態(userAccountControl属性)を取得する。この処理を、すべてのメンバーについてクエリし終わるまで繰り返してから、取得したメンバーの種類に応じて、それぞれのメンバーに対応するアイコンを表示する。

 これに対しメンバーが501人以上の場合には、各メンバーの種類は取得せず、すべてのメンバーを白髪アイコンで表示する。

トラフィックの差は?

 これらの両者のケースで、ネットワーク・トラフィック(ネットワークで送受信されるデータ量)を簡易に計測して比較してみた。具体的には、メンバーの数が500個のグループ(白髪にならない)と、501個のグループ(白髪になる)のメンバーを[Active Directoryユーザーとコンピュータ]で表示させ、トラフィックを計測した。すると前者は約220Kbytes、後者は約40Kbytesと、501個のグループはユーザーが多いにもかかわらず、トラフィックは1/5以下だった。

設定値を変更する

 必要なら、レジストリの設定値を変更することで、通常アイコン表示の最大人数(デフォルトは500人まで)や、LDAPクエリをまとめて発行する人数(デフォルトは35人)を変更できる。

[注意]

レジストリに不正な値を書き込んでしまうと、システムに重大な障害を及ぼし、最悪の場合、システムの再インストールを余儀なくされることもあります。レジストリ・エディタの操作は慎重に行うとともに、あくまで御自分のリスクで設定を行ってください。何らかの障害が発生した場合でも、本Windows Server Insider編集部では責任を負いかねます。ご了承ください。

 白髪アイコンになる人数を変更するには、

HKCU\Software\Policies\Microsoft\Windows\Directory UI\GroupMemberQueryLimit

のDWORD値を変更する。デフォルトは500である。メンバーの数がこの設定値を超えると、白髪アイコンで表示されるようになる。

 また、一度のLDAPクエリで種類を取得するメンバーの数を指定するには、次のDWORD値を変更する。

HKCU\Software\Policies\Microsoft\Windows\Directory UI\ GroupMemberFilterCount

 デフォルト値は35である。この値を大きくすると、一度のクエリのサイズは大きくなるが、クエリ回数は減る。逆に値を小さくすれば、一度のクエリのサイズは小さくなるが、クエリ回数は多くなる。値は、ネットワークの太さやレイテンシに合わせて設定すればよいだろう。

 なお、常にスピードを優先するなら、この値を0にすればよい。こうすると、メンバーの数にかかわらず、メンバーの種類を取得せず、アイコン表示を省略するようになる。

GroupMemberFilterCountを0にして一覧を表示しところ
GroupMemberFilterCountを0にすると、メンバーの数にかかわらず、メンバー種類の取得クエリは常に省略され、アイコン自体が表示されなくなる。

メンバー数の実用上の制限は?

 レジストリを変更すると任意の数を設定できることからも分かるとおり、グループのメンバー数が500というのは、あくまで表示を簡略化するかどうかの区切り値でしかなく、Active Directoryの機能上の制限というわけではない。

 実用上のメンバー数の上限は、Windows 2000では5000だとされている。グループのメンバーが1つでも変更されると、メンバーシップ全体を複製しなければならないことを理由とする制限である。

 ただし、フォレスト機能レベルが「Windows Server 2003中間」以上の場合は、この問題を改善した複製(Linked Value Replication。属性の一部だけを更新する複製機能)が行われるため、前述のような制限はない。フォレスト機能レベルの詳細については以下のマイクロソフト技術情報を参照されたい。

 なお今回のTIPSの対象ソフトウェアはWindows 2000とWindows Server 2003としたが、対象となるのはActive Directory管理ツール([Active Directoryユーザーとコンピュータ]など)のバージョンであり、ドメインのバージョンではない。End of Article

  関連リンク
  ユーザー グループに 500 人より多いユーザーが属する場合、グループの "人" アイコンの髪の色が灰色になる(マイクロソフト サポート情報)
     
「Windows TIPS」


Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間