Главная страница
    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.45 MB
Время: 0.056 c
1-1130526619
John Doe
2005-10-28 23:10
2005.11.20
Односвязный список,почему у меня не связывает? :)


1-1130398578
NightLord
2005-10-27 11:36
2005.11.20
Злые звуки


14-1130313113
БарЛог
2005-10-26 11:51
2005.11.20
Математические приколы


5-1110285566
GuAV
2005-03-08 15:39
2005.11.20
procedure TCustomImageList.DefineProperties(Filer: TFiler);


2-1130670653
тт
2005-10-30 14:10
2005.11.20
Как узнать размер объекта в сантиметрах?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский