AD でセキュリティ グループのリストを取得しようとしていますが、うまくいきません。Active Directory ユーザーとコンピューター MMC を確認すると、次のように表示されます。
blah.blah.com (top)
Group 1
Group1_1
Group1_2
Group1_2_1
Group2
等々。必要なのは、Group1_2_1 のすべてのセキュリティ グループです。検索フィルターとして "(&(objectClass=group))" を使用して DirectoryEntry と DirectorySearcher を使用しようとしましたが、Active Directory ユーザーとコンピューター MMC でさえ見つからないものを取得します。
これは私がC#コードに持っているものです:
// Binding path.
string strPath = "LDAP://<domain_name>.ABC.DEF.COM";
// Binding object.
DirectoryEntry objADAM = default(DirectoryEntry);
// Group Results.
DirectoryEntry objGroupEntry = default(DirectoryEntry);
// Search object.
DirectorySearcher objSearchADAM = default(DirectorySearcher);
// Results collection.
SearchResultCollection objSearchResults = default(SearchResultCollection);
// Construct the binding string.
List<string> result = new List<string>();
// Get the AD LDS object.
try
{
objADAM = new DirectoryEntry(strPath);
objADAM.RefreshCache();
}
catch (Exception e)
{
throw e;
}
// Get search object, specify filter and scope,
// perform search.
try
{
objSearchADAM = new DirectorySearcher(objADAM);
objSearchADAM.Filter = "Group1_2_1 (groupType:1.2.840.113556.1.4.803:=2147483648)";
//objSearchADAM.Filter = "(&(objectCategory=group)(OU=Group1_2)(OU=Group1_2_1))";
objSearchADAM.SearchScope = SearchScope.Subtree;
objSearchResults = objSearchADAM.FindAll();
}
ありがとう。