2009-02-08 16 views
7
Alanıma bir grubun üyelerini almak için aşağıdaki kodu kullanıyorum

boş:"Alan Kullanıcılar" grubu "üyesi" özelliği

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

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

      GroupCollection.Add(Username, Username) 

    Next 

Benim sorun olduğunu ne zaman GroupDN (grubun ayırt edici adı "CN = Etki Alanı Kullanıcıları, CN = Kullanıcılar, DC = EtkiAlanı, DC = yerel", ... Her döngü yürütülmez ve Özellikleri ifadesini el ile işaretlediğimde sıfır sayısı var. Bu, alanımdaki diğer her grup için çalışıyor gibi görünüyor, ancak "Alan Kullanıcıları" grubu herkesi içermeli ve hiç kimseyi içermiyor gibi görünüyor.

Kontrol ettim ve grup Windows AD araçlarında herkesi doğru bir şekilde listeler. Burada eksik olduğum belli bir şey var mı? Bir yan notta, bir grubun tüm üyelerini almanın daha iyi bir yolu var mı?

cevap

8

Bir kullanıcının birincil grup kimliğini değiştirmediğiniz sürece, kullanıcı Etki Alanı Kullanıcıları grubunun üye özniteliğinde saklanmaz; bunun yerine, birincil grup kimliğinin üyeliği belirlemek için Etki Alanı Kullanıcıları RID'sine ayarlanmış olduğu gerçeği kullanır. Alan Kullanıcıları Normal durum, Etki Alanı Kullanıcıları üye özniteliğinin boş olmasıdır; durumun böyle olmaması için varsayılan Active Directory uygulamasında bazı değişiklikler yapmanızı gerektirir.

Alan kullanıcıları için üyelik belirlemek kullanıcının "birincil grup kimliği" dayalı bir "hesaplanan" mekanizması kullanır ve tipik olarak çok değerli bağlı bir öznitelik olarak üye depolamaz. Kullanıcının ana grubu değiştiyse, etki alanı kullanıcıları grubundaki üyelikleri, grup için bağlı özniteliğine yazılır ve daha uzun hesaplanmış . Bu Windows 2000 için doğruydu ve 2003.

Reference

+0

İlginç Windows Server için değişmedi - Sadece AdsiEdit.msc kontrol ve haklısın benziyor - kullanıcıların hiçbiri memberof özniteliklerinde listelenen "Etki Alanı Kullanıcıları" var. Eğer bu olur tek grupsa, onunla yaşayabilirim - sadece bunun garip olduğunu düşündüm. – SqlRyan

+0

Bunun için teşekkürler, "bir grubun tüm kullanıcılarını ve tüm alt gruplarını" yöntemini yazdım ve ne yaptığım önemli değil, "Etki Alanı Kullanıcıları" için herhangi bir kullanıcı alamadım ... bana hata ayıklama saatleri kurtardı! –