我正在使用Active Directory服务接口并尝试检索 群组中的所有用户。 我有这行代码,它给我带来了小组本身:
var
Group:IADSGroup;
begin
ADsGetObject('LDAP://CN=myGroup,CN=Users,DC=dltomb,DC=dltomb25,DC=com', IADSGroup, Group);
......
IADSGroup接口有一个“IsMember”函数,它获取表示用户的WideString,如果用户是该组的成员,则返回true。 问题是我总是从这个得到一个否定的答案...... (我正在检查的用户是该组的唯一用户,并且还检查了Group.Count以查看该组中有一个成员)。 如果真的想对这个问题有所帮助,即使有人可以指出其他解决方法,例如枚举小组成员(我也不能这样做)
答案 0 :(得分:-1)
好的我找到了如何迭代小组
var
groupName: string;
Fetched: Cardinal;
ResultItem: OleVariant;
members: IADsMembers;
..............
groupName:= Group.get_Name;
members:= Group.Members;
enum:= members._NewEnum as IEnumVariant;
Enum.Reset;
Enum.Next(1, ResultItem, Fetched);
while Fetched = 1 do
begin
GroupMember := IDispatch(ResultItem) as IADS;
//do something
Enum.Next(1, ResultItem, Fetched);
end;
但我现在有另一个问题,在添加其他成员时我看不到该组的所有成员。我认为这是因为由于某种原因它只发现用户属于这个组,并且该组不是他们的主要组。我如何才能获得我正在搜索其作为主要群组的用户?