1

オブジェクトの親OUを返すADSIクエリでクエリできるプロパティを知っている人はいますか?ADオブジェクトにバインドしてから、object.Parentを使用してその親OUを返すことができることはわかっていますが、ADSIクエリで「親」を要求すると、無効なクエリとして返されます。どうしても必要な場合を除いて、バインドは行いません。

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

4

1 に答える 1

0

識別名プロパティを見て、最初の区切りコンマの前にあるものをすべて破棄します。これは、親オブジェクトの識別名になります (ちなみに、これは OU ではない可能性があります。コンテナまたは他のタイプのオブジェクトである可能性があります)。

これは、子の識別名から親の識別名を取得する関数です。エスケープされたコンマを含む識別名の値を処理します。public string GetParent(string 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;
}
于 2009-10-08T22:37:50.993 に答える