高分求解关于ADSI的问题,特急

wangguojian 2006-10-30 11:37:45
delphi中,如何通过ADSI取出用户名和对应的工作组信息

我要从AD中取出用户名和其所属的组(例如用户名是TOM,其所属组是IT部),用delphi具体应该如何做才能找出所有用户名及他们所相对应的组名,特急!!

我目前只能把用户名和组分别显示出来,但不知道怎么把它们联系起来,
就是说某个用户是属于哪个组,怎么样才能取出这个关系呢?

procedure TFormISA.Button1Click(Sender: TObject);
var
AdsPath:WideString;
UnknownObject:IUnknown;
Domain:IADsContainer;
begin
AdsPath:='WinNT://TEST';
//使用用户登录的信息创建域对象
OLECheck(AdsGetObject(AdsPath,IID_IADsContainer, UnknownObject));
// 获取域对象
Domain := UnknownObject as IADsContainer;
//把 IADsContainer 接口指针作为参数调用来获得域中的子对象 :
GetDomainInformation(Domain);
end;

procedure TFormISA.GetDomainInformation(Domain: IADsContainer);
var
Enum: IEnumVariant;
ADsTempObj: OLEVariant;
ADsObj: IADs;
Value: LongWord;
begin
// 获取枚举对象
Enum := (Domain._NewEnum) as IEnumVariant;
// 利用枚举对象查找
while (Enum.Next(1, ADsTempObj, Value) = S_OK) do begin
// 获得临时对象
ADsObj := IUnknown(ADsTempObj) as IADs;
// 如果是用户对象
if AdsObj.Class_ = 'User' then
ListBox1.Items.Add(ADsObj.Name);
// 如果是组对象
if AdsObj.Class_ = 'Group' then
ListBox2.Items.Add(ADsObj.Name);
end;
end;
...全文
168 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wariob 2006-10-31
  • 打赏
  • 举报
回复
顶一下
wangguojian 2006-10-31
  • 打赏
  • 举报
回复
请各路高手出手相助,先谢谢了!
wangguojian 2006-10-31
  • 打赏
  • 举报
回复
怎么没有高手帮忙解答呢
股神 2006-10-31
  • 打赏
  • 举报
回复
顶一下

16,746

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧