Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2005.11.20;
Скачать: [xml.tar.bz2];

Вниз

Осваиваю 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 вся ветка

Форум: "WinAPI";
Текущий архив: 2005.11.20;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.034 c
14-1130401242
SL
2005-10-27 12:20
2005.11.20
Автоподставы. Как они надоели!


3-1128619019
Alex_T
2005-10-06 21:16
2005.11.20
Неужели никто не знает???!!!


14-1130798937
-=XxX=-
2005-11-01 01:48
2005.11.20
Шотландская волынка


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


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





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский