Группа «Пользователи домена» пуста, когда я использую свойство «member» DirectoryServices - PullRequest
8 голосов
/ 08 февраля 2009

Я использую следующий код для получения членов группы на моем домене:

  Dim de As New DirectoryEntry("LDAP://" & GroupDN)

  For Each user As String In CType(de.Properties("member"), IEnumerable)

          GroupCollection.Add(Username, Username)

  Next

Моя проблема заключается в том, что когда GroupDN (отличительное имя группы) равно " CN = Пользователи домена, CN = Пользователи, DC = Мидомен, DC = локальный ", цикл For ... Each не выполняется, и когда я проверяю оператор Properties вручную, он получает счетчик ноль. Кажется, это работает для любой другой группы в моем домене, но группа «Пользователи домена» должна содержать всех, и, похоже, никого не содержит.

Я проверил, и группа правильно перечисляет всех в моих инструментах Windows AD. Есть ли что-то очевидное, что я здесь скучаю? Кстати, есть ли лучший способ собрать всех членов группы?

1 Ответ

9 голосов
/ 08 февраля 2009

До тех пор, пока вы не измените идентификатор основной группы пользователя, пользователь не будет сохранен в атрибуте члена группы «Пользователи домена», скорее он использует тот факт, что для идентификатора основной группы для идентификатора пользователя домена установлено значение RID. Пользователи домена. Обычным случаем является то, что атрибут члена Domain Users пуст; для этого потребуется внести некоторые изменения в реализацию Active Directory по умолчанию, чтобы это не имело место.

Группа пользователей домена использует «вычисляемый» механизм, основанный на «основной идентификатор группы» пользователя для определить членство и не обычно хранят участников как многозначные связанные атрибуты. Если основная группа пользователя изменена, их членство в доменных пользователях группа написана на связанный атрибут для группы и нет дольше рассчитывается. Это было верно для Windows 2000 и не изменилась для Windows Server 2003.

Ссылка

...