2010-09-09 7 views
2

J'ai besoin de pouvoir identifier tous les utilisateurs de mon domaine AD (Active Directory). J'ai le nom de domaine et c'est à peu près tout. Il serait rock si je pouvais l'obtenir comme une liste de UserPrincipal ou quelque chose, mais si c'est juste une chaîne alors je peux obtenir le reste de l'information dont j'ai besoin à partir de là.Obtenir tous les utilisateurs du domaine AD

Merci!

Répondre

5

Si vous avez juste pour obtenir les utilisateurs liste que vous pouvez utiliser ce code -

var dirEntry = new DirectoryEntry(string.Format("LDAP://{0}/{1}", "x.y.com", "DC=x,DC=y,DC=com")); 
var searcher = new DirectorySearcher(dirEntry) 
     { 
      Filter = "(&(&(objectClass=user)(objectClass=person)))" 
     }; 
var resultCollection = searcher.FindAll(); 

Cependant, si vous devez effectuer plus d'opérations avec AD, vous devriez envisager d'utiliser LINQ to AD API http://linqtoad.codeplex.com/

Il s'agit d'une API basée sur Linq pour fonctionner avec AD. Facile à utiliser et j'ai de bons résultats avec ça.

+0

hey mate, comment puis-je spécifier que je veux la classe d'objet PAS d'ordinateur dans ce filtre? mon organisation est assez bête là – TerrorAustralis

+0

NVM, trouvé la syntaxe! – TerrorAustralis

2

Je pense que vous pouvez utiliser quelque chose comme ça:

DirectoryEntry domain = new DirectoryEntry("LDAP://domain.com/CN=Users,DC=Domain,DC=com"); 
foreach (DirectoryEntry child in domain.Children) 
{ 
    // code 
} 
Questions connexes