6

.netで簡単にクエリできるように、誰かがActive Directoryのラッパーを知っているか作成したかどうか疑問に思っていますか? 「LINQ-to-ActiveDirectory」または一部のSQLダイアレクトのようなものです。つまり、「SELECT DISTINCT(DEPARTMENT) FROM /Users/SomeOU/AnotherOU」または「SELECT user FROM domain」などを実行できます。

私が知る限り、WMI と IIS を "SQLesque" の方法でクエリすることは可能ですが、別のクエリ言語 (LDAP) を学ばなくても、Active Directory でも同様のことが可能かどうか疑問に思っています。

4

1 に答える 1

13

LINQ to Active Directory は、Active Directory 内のオブジェクトのクエリを実行できるカスタム LINQ クエリ プロバイダーを実装します。内部的に、クエリは LDAP フィルターに変換され、System.DirectoryServices .NET Framework ライブラリを使用してサーバーに送信されます。

http://www.codeplex.com/LINQtoAD

サンプル (サイトから):

// 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();
于 2008-09-18T07:57:40.230 に答える