【问题标题】:ADSI query to return an object's parentADSI 查询以返回对象的父对象
【发布时间】:2009-06-23 14:22:18
【问题描述】:

有谁知道我可以在 ADSI 查询中查询哪些属性来返回对象的父 OU?我知道我可以绑定到 AD 对象,然后使用 object.Parent 返回它的父 OU,但是如果我在 ADSI 查询中请求“父”,它会作为无效查询返回,除非绝对必要,否则我宁愿不绑定。

(即"SELECT sAMAccountName, distinguishedName, objectSid, groupType FROM 'LDAP://DC=Contoso,DC=COM' WHERE objectCategory='group'"

【问题讨论】:

    标签: windows active-directory ldap adsi


    【解决方案1】:

    查看 distinctName 属性,并丢弃第一个分隔逗号之前的任何内容。这将是父对象的 distinctName(顺便说一下,它可能不是 OU,它可能是容器或其他类型的对象)

    这是一个从子专有名称获取父专有名称的函数。它处理包含转义逗号的 distinctName 值。 公共字符串 GetParent(字符串 sDistinguishedName) { int iPos = sDistinguishedName.IndexOf(',');

        if (iPos > 0)
        {
            while (iPos > -1)
            {
                //go back from iPos to find all slashes.
                int iFound = 0;
                for (int iSearch = iPos - 1; iPos >= 0 && sDistinguishedName[iSearch] == '\\'; iSearch--)
                {
                    iFound++;
                }
    
                if (iFound % 2 == 0)
                {
                    return sDistinguishedName.Substring(iPos + 1, sDistinguishedName.Length - iPos - 1);
                }
                else
                {
                    iPos = sDistinguishedName.IndexOf(',', iPos + 1);
                }
            }
        }
    
        return sDistinguishedName;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多