2008-09-18 16 views
6

Zastanawiam się tylko, czy ktokolwiek wie, czy otworzył opakowanie w Active Directory, aby móc go łatwo przetworzyć w .net? Coś w rodzaju "LINQ-to-ActiveDirectory" lub trochę Dialektu SQL, tj. Aby móc wykonać "SELECT DISTINCT (DEPINMENT) FROM/Users/SomeOU/AnotherOU" lub "SELECT user FROM domain" lub cokolwiek innego.Zapytanie Active Directory za pomocą "SQL"?

O ile mi wiadomo, możliwe jest zapytanie do WMI i IIS w sposób "SQLesque", po prostu zastanawiam się, czy coś podobnego jest również możliwe w Active Directory, bez konieczności uczenia się kolejnego języka zapytań (LDAP) ?

+0

+1 znalazłem ten post zamiast! ;) Hehehe ... –

Odpowiedz

13

LINQ do Active Directory implementuje niestandardowego dostawcy LINQ kwerendy, która pozwala odpytywanie obiektów w Active Directory. Wewnętrznie, kwerendy są tłumaczone na filtry LDAP, które są wysyłane do serwera przy użyciu biblioteki katalogowej System.DirectoryServices .NET .

http://www.codeplex.com/LINQtoAD

Sample (ze strony):

// 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

Teraz czuję się głupio, nie mogłem znaleźć tego w Google wcześniej :-) Dzięki! –

+3

To zdarza się każdemu raz na zawsze. Następnym razem, gdy ktoś tego potrzebuje, znajdą zamiast tego ten stackoverflow-post. – Espo

+0

+1 Świetne narzędzie wprowadzone tam. Dzięki! –

Powiązane problemy