1

「windgrp」というWindowsグループがあり、3つのメンバーが含まれています。

  • 管理者
  • testDomain.Administrator
  • user1

グループに存在するメンバーを表示するための次のコードがあります。

using (DirectoryEntry groupEntry = 
  new DirectoryEntry("WinNT://./" + userGroupName + ",group"))
{
    foreach (object member in (IEnumerable)groupEntry.Invoke("Members"))
    {
        using (DirectoryEntry memberEntry = new DirectoryEntry(member))
        {

            listbox.itms.add(memberentry.name);
        }
    }
}

これは私に結果を与えます:

  • 管理者
  • 管理者
  • ユーザー

2番目のエントリがどのドメインに属しているかは表示されません。

ドメインを取得するにはどうすればよいですか?

4

1 に答える 1

1

オブジェクトの階層を上る必要があります。したがって、ユーザーがいる場合は、そこから再帰を開始して、検索条件を満たすshcemaクラスを探すことができます。

           public DirectoryEntry FindDomain(DirectoryEntry memberEntry) 
           {

                if(memberEntry.SchemaClassName.ToLower().Contains("domain") 
                {
                       return memberEntry;
                }   
                if(memberEntry.Parent !=null) 
                {
                         return FindDomain(memberEntry.Parent);
                }
                return null;
           }
于 2010-12-15T20:33:09.767 に答える