Вниз
Скачать: CL | DM;

Осваиваю ADSI и не получается из группы её членов получить.   Найти похожие ветки 

 
EgorovAlex ©   (2005-09-20 10:11) [0]

Для пользователей всё работает (проверка на вхождение пользователя в группу):

 function UsrInGrp(User, Group: WideString): Boolean;
 var
   objName: WideString;
   Members: IADsMembers;
   Usr: IADsUser;
   e: IEnumVARIANT;
   Grp:  IADsGroup;
   hRes,hr: HRESULT;
   lNumElements : ULong;
   varArr : OleVariant;
 begin
   Result := False;
   objName := "WinNT://" + WideString(CompNameStr) + "/" + User;
   hRes := ADsGetObject(PWideChar(objName), IID_IADsUser, Pointer(Usr));
   if (hRes = S_OK) then
   begin
     Members := Usr.Groups;
     e := Members._NewEnum as IEnumVARIANT;
     repeat
       hr := ADsEnumerateNext(e, 1, varArr, lNumElements);
       if (lNumElements=0) then
         break;
       IDispatch(varArr).QueryInterface(IADsGroup, Grp);
       if (Grp.Name = Group) then
       begin
         Result := True;
         Break;
       end;
     until not Succeeded(Hr);
   end;
 end;


А для групп вроде всё то-же самое, но не работает:


 function GrpInGrp(Group1, Group2: WideString): Boolean;
 var
   objName: WideString;
   Grp1, Grp2: IADsGroup;
   Members: IADsMembers;
   e : IEnumVARIANT;
   hRes,hr: HRESULT;
   lNumElements : ULong;
   varArr : OleVariant;
 begin
   Result := False;
   objName := "WinNT://" + WideString(CompNameStr) + "/" + Group2;
   hRes := ADsGetObject(PWideChar(objName), IID_IADsGroup, Pointer(Grp2));
   if (hRes = S_OK) then
   begin
     Members := Grp2.Members;
     e := Members._NewEnum as IEnumVARIANT;
     repeat
       hr := ADsEnumerateNext(e, 1, varArr ,lNumElements);
       if (lNumElements=0) then
         break;
       IDispatch(varArr).QueryInterface(IADsGroup, Grp1);
       if (Grp1.Name = Group2) then
         Result := True;
     until not Succeeded(Hr);
   end;
 end;


 
EgorovAlex ©   (2005-09-20 14:40) [1]

Тогда задам вопрос по другому: как для глобальной группы домена можно узнать список глобальных групп в неё входящих?



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.025 c
2-1129390436
OSokin
2005-10-15 19:33
2005.11.20
Сортировка по бд


14-1130707919
Gero
2005-10-31 00:31
2005.11.20
Вышла Civilization IV


14-1130356302
БарЛог
2005-10-26 23:51
2005.11.20
Что лучше?


2-1131096961
TTeK
2005-11-04 12:36
2005.11.20
подсчёт повторяющихся значений или top 10


3-1129107561
AndDem
2005-10-12 12:59
2005.11.20
Reconnect




   Наверх