2016-04-01 21 views
0

Der obige Code wird alle Mitglieder einer Gruppe erhalten. h. die Gruppe kann eine Gruppe und Benutzer enthalten.Identifizieren, ob ein Mitglied einer Gruppe ein Benutzer oder eine Gruppe in Active Directory ist, mit C#

Wie bekomme ich nur Benutzer?

+0

Wie Sie Gruppe von Benutzern unterscheiden? – Adil

+0

Benutzer haben Einträge und Gruppen nicht. So bekomme ich eine Ausnahme beim Hinzufügen von Benutzerdetails. – Shesha

+0

In welcher Zeile erhalten Sie die Ausnahme? Die Schleife wird auch nicht kompiliert, ist dieser vollständige Code? – Adil

Antwort

-1

Sie sollten eine Art, die Sie

#microsoft.graph.user 

Für Anwender gibt. Also das ist, wenn Sie das Office-Diagramm verwenden. Es könnte verschiedene Wege geben, dies zu tun, aber das ist zumindest einer von ihnen.

+1

Was hat das mit ** Active Directory **, Benutzern und Gruppen zu tun?! ???!?!? –

+0

Alles und nichts. Wie ich schon sagte, es hängt alles davon ab, wie Sie Ihre AD abfragen. In meinem Beispiel habe ich das Office-Diagramm verwendet, mit dem Sie im Wesentlichen AD durchlaufen und alles abfragen können, von Benutzern über Gruppen, Gruppenmitgliedschaften bis hin zu Dokumenten. Ich kann die "Mitglieder" -Abfrage verwenden, um eine Liste von Mitgliedern für eine Gruppe zu erhalten, und der TYP des Mitglieds wird dann angeben, ob es ein Benutzer oder eine Gruppe oder etwas anderes ist. Wie ich in meiner Antwort geschrieben habe, gibt es andere Möglichkeiten, dies zu tun, aber es ist eine der Antworten auf Ihre Frage. Dieser Downvote ergibt für mich keinen Sinn. –

0

Sie sollten den Namespace System.DirectoryServices.AccountManagement (S.DS.AM) auschecken.

Grundsätzlich können Sie einen Domain-Kontext definieren und leicht Benutzer finden und/oder Gruppen in AD:

// set up domain context - limit to the OU you're interested in 
using (PrincipalContext ctx = new PrincipalContext(ContextType.Domain, null, "OU=YourOU,DC=YourCompany,DC=Com")) 
{ 
    // find the group in question 
    GroupPrincipal group = GroupPrincipal.FindByIdentity(ctx, "YourGroupNameHere"); 

    // if found.... 
    if (group != null) 
    { 
     // iterate over members 
     foreach (Principal p in group.GetMembers()) 
     { 
      UserPrincipal up = p as UserPrincipal; 

      if (up != null) 
      { 
       Console.WriteLine("{0}: {1}", p.StructuralObjectClass, p.DisplayName); 
       // do whatever you need to do with that user principal 
      } 
     } 
    } 
} 

Sie nicht nur die Benutzer aus einer Gruppe, die Mitgliedschaft bekommen - Sie müssen filtern, nachdem Sie bekommen die Ergebnisse zurück.

Das neue S.DS.AM macht es einfach, mit Benutzern und Gruppen in AD herumzuspielen!

Lesen Sie mehr darüber hier:

Verwandte Themen