2010-09-09 29 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至AD API http://linqtoad.codeplex.com/

這是一個基於Linq的API與AD一起工作。易於使用,我有一些好的結果。

+0

hey mate,我該如何指定我希望對象類不是計算機在該過濾器中?我的組織很愚蠢 – TerrorAustralis 2010-09-09 07:03:02

+0

NVM,找到了語法! – TerrorAustralis 2010-09-09 07:08:06

2

我認爲你可以使用類似的東西:

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