2010-09-09 5 views
2

Мне нужно определить всех пользователей в моем домене AD (Active Directory). У меня есть доменное имя, и это все. Он будет качать, если я могу получить его как список UserPrincipal или что-то в этом роде, но если его просто строка, то я могу получить остальную информацию, которая мне нужна оттуда.Получить всех пользователей от домена AD

Спасибо!

ответ

5

Если вы просто должны получить список пользователей, вы можете использовать этот код -

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(); 

Однако, если вам нужно больше операций с AD, вам следует использовать LINQ to AD API http://linqtoad.codeplex.com/

Это интерфейс Linq для работы с AD. Прост в использовании, и у меня есть хорошие результаты.

+0

hey mate, как я могу указать, что я хочу, чтобы в этом фильтре был класс объекта NOT computer? моя организация довольно глупа там – TerrorAustralis

+0

NVM, нашел синтаксис! – TerrorAustralis

5

взгляд на эту статью: How to: (Almost) Everything In Active Directory via C#

+0

+1 Это похоже на отличный ресурс! –

+0

Это просто проблема с тем, что мне нужно. Вероятно, ошибка моей организации в том, что у меня действительно была реализация ADA crap. – TerrorAustralis

2

Я думаю, вы можете использовать что-то вроде этого:

DirectoryEntry domain = new DirectoryEntry("LDAP://domain.com/CN=Users,DC=Domain,DC=com"); 
foreach (DirectoryEntry child in domain.Children) 
{ 
    // code 
} 
Смежные вопросы