gpt4 book ai didi

c++ - 如何检索 Active Directory 组的每个父组

转载 作者:行者123 更新时间:2023-11-30 04:43:13 25 4
gpt4 key购买 nike

我有一个 Active Directory,其中设置了多个组、子组级别以及这些子组中的用户。

我想指定一个组名并检索该组所属的所有组(立即或更上层,哪个不重要)。

我有代码可以找到用户所属的组并遍历它们以查看它们是否与指定的组名称匹配,但我不知道如何指定组并搜索这些组。

IADsUser *user_object = NULL;
IADsMembers *members;

// ...
// Get object via ADsGetObject
// ...

// Provides me with a list of groups that the user belongs to
user_object->Groups(&members);

IADsGroup 类不包含 Groups() 函数,因此我看不到如何检索组所属的组列表。

最佳答案

您可以阅读 memberOf组的属性,使用 IADs::GetEx .

如果您有一个 IADsGroup group_object:

HRESULT hr;
VARIANT groups;
VariantInit(&groups);
hr = group_object->GetEx(CComBSTR("memberOf"), &groups);

groups 变量现在将是一个 VARIANT 数组,其中包含所有组的 distinguishedName。如果您想获得每个人的友好名称,则需要绑定(bind)到每个组(使用 ADsGetObject)以获取该组的 IADsGroup 对象。

memberOf 属性确实有一些您应该注意的警告,我写过关于 here 的警告,但如果您处于没有外部可信域的单域环境中,那么这对您来说应该无关紧要。

请注意,如果它不是任何其他组的成员,则返回值 hr 可能是 E_ADS_PROPERTY_NOT_FOUND。 Active Directory 通常将空属性视为不存在。

关于c++ - 如何检索 Active Directory 组的每个父组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58397594/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com