Erhalten Sie nur die Aktivierten Konten aus Active Directory

8

Ich verwende System.DirectoryServices.AccountManagement.dll , um mit Active Directory zu arbeiten um alle Benutzer in die Gruppe "Domain Users" zu bekommen.

Dies gibt alle Benutzer in der Domäne zurück, aber ich muss nur die aktivierten abrufen.

Hier ist ein Beispielcode:

%Vor%

Andere Gruppen funktionieren gut, aber wenn die Gruppe "Domänenbenutzer" ist, ist der Wert der Enabled -Eigenschaft false für alle Benutzer. Dies macht es unmöglich, zwischen aktivierten und deaktivierten Benutzern zu unterscheiden, ohne eine weitere Abfrage für jeden Benutzer durchzuführen.

    
Moutasim Momani 17.01.2013, 14:05
quelle

3 Antworten

1

UserPrinciple-Objekte haben dafür eine bool-Eigenschaft Enabled.

Ссылка

%Vor%     
Joe Petrini 18.01.2013 19:38
quelle
1

Eine Methode zu diesem Problem könnte darin bestehen, zunächst mit der Klasse PrincipalSearcher nach Aktivierten Benutzern zu suchen und dann die Methode des Prinzipals IsMemberOf()

zu verwenden %Vor%     
Hive 21.12.2015 02:57
quelle
0

Es gibt eine Anmerkung zur MSDN-Seite der Enabled-Eigenschaft sagen:

  

Wenn der Prinzipal nicht im Speicher beibehalten wurde, gibt diese Eigenschaft null zurück. Nachdem der Prinzipal beibehalten wurde, hängt die Standardeinstellung für die Einstellung vom Speicher ab. Die AD DS- und AD LDS-Speicher deaktivieren neue Principals, wenn sie beibehalten werden, während SAM neue Principals aktiviert, wenn sie beibehalten werden. Die Anwendung kann diese Eigenschaft nur auf einen Wert festlegen, nachdem sie im Speicher beibehalten wurde.

Vielleicht hängt es zusammen, wenn der Standardwert falsch ist?

Außerdem gibt es im MSDN-Forum einen Beitrag über UserPrincipal.Enabled gibt False für Accounts zurück, die tatsächlich aktiviert sind? und die sich wirklich ähnlich zu Ihrem Problem anhören. Laut der Post gibt es hier vielleicht eine Lösung:

  

Ich glaube, ich habe es falsch verstanden. Ignoriere, was ich vorher gepostet habe. Ich denke, ich   weiß, was passiert. Die GetMembers-Methode wird anscheinend nicht geladen   die UserPrincipal-Daten. Ich weiß nicht, ob es eine bessere Lösung gibt,   aber das folgende funktioniert (zumindest auf meinem AD):

%Vor%     
Emmanuel Istace 11.08.2013 01:28
quelle