2016-11-17 24 views
-2

我正在使用Active Directory服务接口并试图从组中检索 所有用户。 我这行的代码,使我的组本身:Delphi-与ADSI-如何检索所有组成员

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

使用'Members'枚举成员 –

回答

-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; 

但我现在有另一个问题,当添加其他成员时,我看不到该组的所有成员。我发现这是因为某些原因,它发现只有用户属于这个组,而且这个组不是他们的主要组。我怎么能得到一个用户与我正在寻找作为他们的主要组的用户?

+0

请不要在“答案”中提出新问题 - SO不支持这个问题。改为打开一个新的q。 – MartynA

+0

好的,我会的,谢谢 – itay312

+0

这段代码根本没有列举出来。 –

相关问题