正如標題所提到的,我需要一種方法來獲取組中所有組在ActiveDirectory中的成員。如何使用C#在ActiveDirectory中獲得組的成員?
要獲得所有組的用戶是成員的我用
public static DirectoryEntry[] GetGroupsUserIsMemberOf(DirectoryEntry directoryEntry)
{
ArrayList groupsUserIsMemberOf = new ArrayList();
object groups = null;
DirectoryEntry[] userGroupEntries = null;
if (directoryEntry != null && directoryEntry.SchemaClassName == "user") {
groups = directoryEntry.Invoke("Groups", null);
foreach (object group in (IEnumerable)groups) {
groupsUserIsMemberOf.Add(new DirectoryEntry(group));
}
userGroupEntries = (DirectoryEntry[])groupsUserIsMemberOf.ToArray(typeof(DirectoryEntry));
}
return userGroupEntries;
}
而是試圖
public static DirectoryEntry[] GetGroupsGroupIsMemberOf(DirectoryEntry directoyEntry)
{
ArrayList groupsGroupIsMemberOf = new ArrayList();
object groups = null;
DirectoryEntry[] groupEntry = null;
if (directoyEntry != null && directoyEntry.SchemaClassName == "group") {
groups = directoyEntry.Invoke("Groups", null); // throws exception (see below)
foreach (object group in (IEnumerable)groups) {
groupsGroupIsMemberOf.Add(new DirectoryEntry(group));
}
groupEntry = (DirectoryEntry[])groupsGroupIsMemberOf.ToArray(typeof(DirectoryEntry));
}
return groupEntry;
}
時候能得到所有組一組是行
groups = directoyEntry.Invoke("Groups", null); // throws exception (see below)
成員拋出異常:
"Unknown name. (exception HRESULT: 0x80020006 (DISP_E_UNKNOWNNAME))"
有人知道一個高性能的方式來獲得一個組的成員?
是啊,這是做的方法! – 2009-05-27 15:43:20