2008-09-18 7 views
6

Ich frage mich nur, ob jemand in Active Directory einen Wrapper kennt oder erstellt hat, um ihn in .net leicht abfragen zu können? Ein bisschen wie "LINQ-to-ActiveDirectory" oder etwas SQL-Dialekt, d. H. Um "SELECT DISTINCT (DEPARTMENT) FROM/Benutzer/SomeOU/AnotherOU" oder "SELECT user FROM domain" oder was auch immer zu tun.Abfrage von Active Directory mit "SQL"?

Soweit ich weiß, ist es möglich, WMI und IIS in einer "SQLesque" Weise abzufragen, ich frage mich nur, ob etwas Ähnliches auch für Active Directory möglich ist, ohne eine weitere Abfragesprache (LDAP) lernen zu müssen ?

+0

+1 ich diesen Beitrag statt gefunden! ;) Hehehe ... –

Antwort

13

LINQ to Active Directory implementiert einen benutzerdefinierten LINQ-Abfrage-Provider, Abfrage Objekte in Active Directory ermöglicht. Intern werden Abfragen in LDAP-Filter übersetzt, die an den Server gesendet werden, der die System.DirectoryServices .NET Framework-Bibliothek verwendet.

http://www.codeplex.com/LINQtoAD

Probe (von der Website):

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

Jetzt fühle ich mich dumm, konnte das früher in Google nicht finden :-) Danke! –

+3

Das passiert jedem einmal in mir. Wenn jemand das nächste Mal benötigt, findet er stattdessen diesen Stackoverflow-Post. – Espo

+0

+1 Großes Tool, das dort eingeführt wurde. Vielen Dank! –