Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.11.20;
Скачать: 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 вся ветка

Текущий архив: 2005.11.20;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.054 c
2-1130438398
Mr.jack
2005-10-27 22:39
2005.11.20
QReport албомный


2-1130827943
Helen
2005-11-01 09:52
2005.11.20
Помогите разобраться с DBGridEh


3-1129102613
akm2
2005-10-12 11:36
2005.11.20
как через params записать в MySQL значение NULL


10-1108026498
ViktorKR
2005-02-10 12:08
2005.11.20
COM+ авторизация


14-1130479509
AngelOfDeath
2005-10-28 10:05
2005.11.20
DLL