2008-09-18 29 views
6

Acaba kimse, Active Directory'nin etrafından .net ile kolayca sorgulayabilen bir sarıcı bilip bilmediğini merak ettim mi? "LINQ-to-ActiveDirectory" ya da bazı SQL Dialect gibi, yani "SELECT DISTINCT (DEPARTMENT) FROM/Users/SomeOU/AnotherOU" ya da "SELECT user FROM domain" ya da her ne olursa olsun."SQL" ile Active Directory Sorgulama?

Bildiğim kadarıyla, bir "SQLesque" şekilde WMI ve IIS sorgulamak mümkündür, ben sadece başka bir Sorgu Dili (LDAP) öğrenmek zorunda kalmadan, Active Directory için benzer bir şey mümkün olup olmadığını merak ediyorum ? Active Directory için

+0

+1 Ben bu yazı yerine bulundu! ;) Hehehe ... –

cevap

13

LINQ Active Directory içindeki sorgulama nesneleri sağlayan bir özel LINQ sorgu sağlayıcı uygular. Dahili olarak, sorgular System.DirectoryServices .NET Çerçeve kitaplığı kullanılarak sunucuya gönderilen LDAP filtrelerine çevrilir. (Sitesinden)

http://www.codeplex.com/LINQtoAD

Örnek:

// NOTE: Entity type definition "User" omitted in sample - see samples in release. 

var users = new DirectorySource<User>(ROOT, SearchScope.Subtree); 
users.Log = Console.Out; 

var res = from usr in users 
      where usr.FirstName.StartsWith("B") && usr.Office == "2525" 
      select new { Name = usr.FirstName + " " + usr.LastName, usr.Office, usr.LogonCount }; 

foreach (var u in res) 
{ 
    Console.WriteLine(u); 
    u.Office = "5252"; 
    u.SetPassword(pwd); 
} 

users.Update(); 
+1

Şimdi aptal hissediyorum, Google'da daha önce bulamadık :-) Teşekkürler! –

+3

Bu arada herkesin başına gelir. Bir dahaki sefere birilerinin buna ihtiyacı var, bunun yerine bu stackoverflow-post'u bulacaklar. – Espo

+0

+1 Harika bir araç orada tanıtıldı. Teşekkürler! –

İlgili konular