DirectoryServicesは私のためにトリックを行うようです。動的配布リスト(スキーマクラス名= "msExchDynamicDistributionList" )を指すDirectoryEntryを作成し、"msExchDynamicDLBaseDN"および"msExchDynamicDLFilter"プロパティを使用してメンバーを検索します。
using (var group = new DirectoryEntry("LDAP://CN=MyGroup,OU=MyOU,DC=company,DC=com"))
{
string baseDN = (string)group.Properties["msExchDynamicDLBaseDN"].Value;
string filter = (string)group.Properties["msExchDynamicDLFilter"].Value;
using (var searchRoot = new DirectoryEntry("LDAP://" + baseDN))
using (var searcher = new DirectorySearcher(searchRoot, filter, propertiesToLoad))
using (var results = searcher.FindAll())
{
foreach (SearchResult result in results)
{
// Use the result
}
}
}
グループのメンバーは、ユーザー、連絡先、およびパブリックフォルダーだけでなく、通常のグループまたはその他の動的配布グループである可能性があることに注意してください。