1

我正在尝试获取 AD 中的安全组列表,但运气不佳。当我检查 Active Directory 用户和计算机 MMC 时,我看到:

blah.blah.com (top)
Group 1
  Group1_1
  Group1_2
    Group1_2_1
Group2

等等。我需要的是 Group1_2_1 中的所有安全组我尝试使用 DirectoryEntry 和 DirectorySearcher 使用“(&(objectClass = group))”作为搜索过滤器,但我得到了我什至在 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();
        }

谢谢。

4

2 回答 2

0

尝试:将您的基础设置为:Group1_2_1 (groupType:1.2.840.113556.1.4.803:=2147483648)

更多示例。 -吉姆

于 2013-05-26T08:03:49.757 回答
-1

如果这仅适用于单个用户安全组,那么下面是单行 PowerShell 脚本

Get-ADPrincipalGroupMembership -Identity >samaccount< | Where-Object {$_.distinguishedname -notcontains "config"}| Where-Object {$_.GroupCategory -notmatch "distribution"} | select name

这将首先获得用户的完整成员资格 -> 然后删除“配置”组的成员资格 -> 然后过滤掉通讯组 -> 最后它只会为您提供安全组的名称。

问候, 阿维谢赫

于 2017-08-23T04:48:02.230 回答