C# 如何获取所有windows组?

C# 如何获取所有windows组?,c#,asp.net,windows,active-directory,active-directory-group,C#,Asp.net,Windows,Active Directory,Active Directory Group,我写这篇文章是为了获取特定用户所属的组: DirectoryEntry AD = new DirectoryEntry("WinNT://" + Environment.MachineName + ",computer"); DirectoryEntry user = AD.Children.Find(completeUserName, "user"); object obGroups = AD.Invoke("Groups"); foreach (object ob in (IEnumerab

我写这篇文章是为了获取特定用户所属的组:

DirectoryEntry AD = new DirectoryEntry("WinNT://" + Environment.MachineName + ",computer");
DirectoryEntry user = AD.Children.Find(completeUserName, "user");
object obGroups = AD.Invoke("Groups");
foreach (object ob in (IEnumerable)obGroups)
{
   // Create object for each group.
    DirectoryEntry obGpEntry = new DirectoryEntry(ob);
    listOfMyWindowsGroups.Add(obGpEntry.Name);
}
for (int j = 0; j < listOfMyWindowsGroups.Count; j++)
{
   //ex
}
DirectoryEntry AD=newdirectoryEntry(“WinNT://“+Environment.MachineName+”,computer”);
DirectoryEntry user=AD.Children.Find(completeesername,“user”);
对象对象对象组=AD.Invoke(“组”);
foreach(对象组中的对象对象对象)
{
//为每个组创建对象。
DirectoryEntry obGpEntry=新的DirectoryEntry(ob);
添加(obGpEntry.Name);
}
对于(int j=0;j

如何在windows中检索所有组而不仅仅是针对特定用户?

如何设置组筛选器并枚举结果

尝试此筛选器:

AD.Children.SchemaFilter.Add("group");

试试这个,它会给你一个特定的OU中的所有组

public ArrayList GetGroups()
{
    ArrayList myItems = new ArrayList();

    // Create the principal context for the group object.
    PrincipalContext oPrincipalContext = new PrincipalContext(ContextType.Domain, sDomain, sDefaultOU, ContextOptions.SimpleBind, sServiceUser, sServicePassword);

    // Create the GroupPrincipal object and set the diplay name property. 
    GroupPrincipal oGroupPrincipal = new GroupPrincipal(oPrincipalContext);

    // Create a PrincipalSearcher object.     
    PrincipalSearcher oPrincipalSearcher = new PrincipalSearcher(oGroupPrincipal);

    // Searches for all groups named "Administrators".
    PrincipalSearchResult<Principal> oPrincipalSearchResult = oPrincipalSearcher.FindAll();

    foreach (Principal oResult in oPrincipalSearchResult)
    {
        myItems.Add(oResult.Name);
    }
    return myItems;
}
public ArrayList GetGroups()
{
ArrayList myItems=新建ArrayList();
//为组对象创建主体上下文。
PrincipalContext oPrincipalContext=新PrincipalContext(ContextType.Domain、sDomain、sDefaultOU、ContextOptions.SimpleBind、sServiceUser、sServicePassword);
//创建GroupPrincipal对象并设置diplay name属性。
GroupPrincipal oGroupPrincipal=新的GroupPrincipal(oPrincipalContext);
//创建PrincipalSearcher对象。
PrincipalSearcher oPrincipalSearcher=新PrincipalSearcher(oGroupPrincipal);
//搜索名为“Administrators”的所有组。
PrincipalSearchResult-oPrincipalSearchResult=oPrincipalSearcher.FindAll();
foreach(负责人或运营结果)
{
myItems.Add(oResult.Name);
}
归还我的物品;
}
要获得完整的参考资料,你可以查看这个

.Net 3.5版本->

旧版本->

在:AD.Children.Cast()之后。选择(de=>de.Name.ToArray())