プライマリ グループを設定すると Active Directory でグループ メンバシップからユーザーが除外される

この記事は、以前は次の ID で公開されていました: JP275523
現象
Ldp.exe などの LDAP (Lightweight Directory Access Protocol) ユーティリティを使用して Active Directory を表示すると、Members 属性にプライマリ グループが表示されません。

ユーザー オブジェクトの MemberOf 属性にグループ名が表示されません。これにより、プログラムが Active Directory を PrimaryGroupID 属性で照会せずに、グループの Members 属性だけで照会する場合に問題が発生することがあります。
原因
この問題は、グループ メンバシップが 5000 ユーザーに制限されているために発生します。これは、複製される属性のサイズによる制限です。ただし、各ユーザーがデフォルトで Domain Users グループのメンバになります。
解決方法
この問題を解決するには、PrimaryGroupID という名前の別の属性を作成します。この場合、すべてのユーザーを Domain Users グローバル グループのメンバにすることができますが、Domain Users グループ メンバシップに明示的に追加するのではなく、PrimaryGroupID 値を使用してこのグループの値をユーザーに割り当てます。PrimaryGroupID 値は、ユーザーのプライマリ グループとして割り当てられているグループの RID です。
ドメイン内のリソースに対する適切なアクセス権がユーザーにあるかどうかを確認するには、MemberOf 属性に基づいてグループ メンバシップを算定するだけでなく、ユーザー アカウントの PrimaryGroupID の値を照会することもできます。この場合、ユーザーのトークンを作成し、そのユーザーが所属するすべてのグループへのログオン処理時にプライマリ グループを含めます。

グループを照会し、グループ メンバシップに基づいてユーザーにアクセスを与える必要があるプログラムでは、PrimaryGroupID 属性も照会しなければなりません。

5,000 を超えるユーザーをグループに追加する必要がある場合は、マスタ (親) グループの下にグループをネストすることによって 5,000 というメンバ制限を回避できます。
詳細
PrimaryGroupID は、そのユーザーのプライマリ グループ ID を表す整数値です。

以下の例は、Microsoft Visual Basic (VB) のスクリプトを使用して PrimaryGroupID ユーザー属性を取得する方法を示します。
   Set usr = GetObject("WinNT://TestDomain/JSmith")   UserID = usr.Get("PrimaryGroupID")   MsgBox "The User's Primary Group ID is:"& UserID
関連情報
この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 275523 (最終更新日 2001-01-15) をもとに作成したものです。

この資料に含まれているサンプル コード/プログラムは英語版を前提に書かれたものをありのままに記述しており、日本語環境での動作は確認されておりません。

permissions
プロパティ

文書番号:275523 - 最終更新日: 03/01/2004 20:26:00 - リビジョン: 2.0

Microsoft Windows 2000 Advanced Server, Microsoft Windows 2000 Server

  • kbtool kbenv kbprb KB275523
フィードバック