none
ActiveDirectoryのOUの並び順取得について RRS feed

  • 質問

  • お世話になります。

    ActiveDirectoryの組織単位(OU)の一覧を取得するために以下のようなコードでデータを取得しています。
    OUの一覧自体の取得はできるのですが、取得順をActiveDirectory管理ツールの「Active Directory ユーザーとコンピュータ」で表示されている順番で取得できず困っています。

    「Active Directory ユーザーとコンピュータ」では、ドラック&ドロップで自由に並び順が変更できるため、その順番をどうしてもプログラム側で取得したいと思っています。

    デフォルトでは、OUの作成日順で取得されるようで、SortOptionクラスでActiveDirectoryの属性値を指定することで、指定した属性順に取得できるのは理解したのですが、どうしても「Active Directory ユーザーとコンピュータ」で表示されている順番で取得ができません。

    「Active Directory ユーザーとコンピュータ」で表示されている順番で取得されたことがある方がいらっしゃいましたらご教授ください。

    宜しくお願いします。

    【OU取得プログラムの一部】
    DirectoryEntry objUserEntry =
             new DirectoryEntry("ldap://xxx.co.jp/DC=xxx,DC=yyy", 管理者ID,管理者パスワード, AuthenticationTypes.Secure);

    //ActiveDirectory検索用オブジェクトを作成
    DirectorySearcher objDrSearch = new DirectorySearcher(objUserEntry);

    objDrSearch.CacheResults = false;
    objDrSearch.Filter = "(objectClass=" + organizationalUnit + ")";
    SearchResultCollection sResultCol = DrSearch.FindAll();
                  
    foreach(SearchResult sResult in sResultCol)
    {
       ~取得したOU情報を処理~
    }
    2007年6月28日 7:22