Listing All Active Directory Groups

前端 未结 6 1241
挽巷
挽巷 2020-12-13 20:16

The following code lists some, but not all, Active Directory Groups. Why?

I am trying to list all security groups, distribution groups, computer groups etc. Have I

相关标签:
6条回答
  • 2020-12-13 20:22

    you can get the all ad group details by the below powershell and if you want particular Name against of AD Group then write filter instead of *

    Get-ADGroup -Filter * -properties * | Export-csv c:\csv\new.csv

    0 讨论(0)
  • 2020-12-13 20:23

    I tried this and it worked

        public ArrayList GetAllGroupNames(string ipAddress, string ouPath)
        {
            DirectorySearcher deSearch = new DirectorySearcher();
            deSearch.SearchRoot = GetRootDirectoryEntry(ipAddress, ouPath);
            deSearch.Filter = "(&(objectClass=group))";
            SearchResultCollection results = deSearch.FindAll();
            if (results.Count > 0)
            {
                ArrayList groupNames = new ArrayList();
    
                foreach (SearchResult group in results)
                {
                    var entry = new DirectoryEntry(group.Path, UserName, Password);
                    string shortName = entry.Name.Substring(3, entry.Name.Length - 3);
                    groupNames.Add(shortName);
                }
    
                return groupNames;
            }
            else
            {
                return new ArrayList();
            }
        }
    
        private DirectoryEntry GetRootDirectoryEntry(string ipAddress, string domainPath, string username, string password)
        {
            var ldapPath = "LDAP://" + ipAddress + "/" + domainPath;
            return new DirectoryEntry(ldapPath, username, password, AuthenticationTypes.Secure);
        }
    
    0 讨论(0)
  • 2020-12-13 20:32

    To retrieve a set of results that is larger than 1000 items, you must set SizeLimit to its default value (zero) and set PageSize to a value that is less than or equal to 1000.

    objSearchADAM.PageSize = 1000;

    0 讨论(0)
  • 2020-12-13 20:40

    Try filter "(objectcategory=group)" Found solution here

    0 讨论(0)
  • 2020-12-13 20:45

    If you're on .NET 3.5 or newer, you can use a PrincipalSearcher and a "query-by-example" principal to do your searching:

    // create your domain context
    PrincipalContext ctx = new PrincipalContext(ContextType.Domain);
    
    // define a "query-by-example" principal - here, we search for a GroupPrincipal 
    GroupPrincipal qbeGroup = new GroupPrincipal(ctx);
    
    // create your principal searcher passing in the QBE principal    
    PrincipalSearcher srch = new PrincipalSearcher(qbeGroup);
    
    // find all matches
    foreach(var found in srch.FindAll())
    {
        // do whatever here - "found" is of type "Principal" - it could be user, group, computer.....          
    }
    

    If you haven't already - absolutely read the MSDN article Managing Directory Security Principals in the .NET Framework 3.5 which shows nicely how to make the best use of the new features in System.DirectoryServices.AccountManagement

    0 讨论(0)
  • 2020-12-13 20:47
    DirectoryEntry entry = new DirectoryEntry("ldap://ldap.gaurangjadia.com", "scott", "tiger");
    
    DirectorySearcher dSearch = new DirectorySearcher(entry);
    dSearch.Filter = "(&(objectClass=group))";
    dSearch.SearchScope = SearchScope.Subtree;
    
    SearchResultCollection results = dSearch.FindAll();
    
    for (int i = 0; i < results.Count; i++) {
        DirectoryEntry de = results[i].GetDirectoryEntry();
    
        //TODO with "de"
    }
    
    0 讨论(0)
提交回复
热议问题