Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.07.2011, 13:50   #1
Dee63
Пользователь
 
Аватар для Dee63
 
Регистрация: 09.03.2010
Сообщений: 48
По умолчанию Работа с базой Active Directory

Всем привет.
Стала задача- запрос к базе АД (для примера брал винсерв2003), с целью выбрать всех отключенных пользователей.

Сделал так:
Кинул ADOConnection с такими настройками (см скрин 1),
строка инициализации такая:
Код:
Provider=ADsDSOObject;User ID=bigs\AdminName;Encrypt Password=False;Data Source=big.com;Location=name-of-server;Mode=Read;Bind Flags=0;ADSI Flag=-2147483648
Тут все отлично. все работает и коннектится.

Далее, кидаю AdoQuery с такими настройками (см скрин 2).

Запрос на выборку всех пользователей он выполняет, список выводт-работает вообщем.


Далее идем к главной задаче- список всех отключеных пользователей.

Прочитал Статью с примером к этой задаче.
Значит мне надо написать запрос так:

Код:
select samaccountname from 'LDAP://DC=big, DC=com' where (objectClass='user') and (UserAccountControl :1.2.840.113556.1.4.803: =2)
т.е. в домене big.com выбрать всех пользователей, у которых при поразрядном сравнении атрибута будет выявлен флаг, указывающий на то, что пользователь отключен, т.е. выполнится условие

Код:
(UserAccountControl :1.2.840.113556.1.4.803: =2
Собственно, произвожу запрос и получаю в итоге ошибку:
Код:
EOleException: Неправильно определен объект Parameter. Предоставлены несогласованные или неполные сведения.
Вообщем запрос не удался.

Смотрю секцию Parameter (см скрин 3) и не понимаю что же тут от меня нужно, ведь я данные получать должен, а не передавать. Где я не прав?

Прошу знающих направить на путь истинный, и чтоб путем был не гугл.
Изображения
Тип файла: jpg Ado1.jpg (22.0 Кб, 215 просмотров)
Тип файла: jpg ado2.jpg (26.7 Кб, 155 просмотров)
Тип файла: jpg adoquery_error.jpg (20.2 Кб, 138 просмотров)

Последний раз редактировалось Dee63; 28.07.2011 в 13:55.
Dee63 вне форума Ответить с цитированием
Старый 01.08.2011, 21:03   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А в квадратных скобках [UserAccountControl :1.2.840.113556.1.4.803:] не пробовали? Возможно поможет
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 03.08.2011, 13:19   #3
Dee63
Пользователь
 
Аватар для Dee63
 
Регистрация: 09.03.2010
Сообщений: 48
По умолчанию

Кароче все оказалось предельно просто!

Благодаря подсказке одного участника с SQL.ru оказкалось, что:
1. в AdoQuery надо выставить

Код:
 CheckPaam:=false;

2. в SQL вставлять

Код:
<LDAP://DC=big,DC=com>;(&(objectCategory=person)(objectClass=user)(userAccountControl:1.2.840.113556.1.4.803:=2));samAccountName;subtree
После этого все запрашивается.
НО
есть непонятка с тем, что при :1.2.840.113556.1.4.803: (И) выводит список отключенных пользователей (как заявлено МС), а вот при :1.2.840.113556.1.4.804: (ИЛИ)
в список попадают еще пользователи, которые тоже отключены, и галки у них стоят ровно такие же, как и у тех, которые выводились при (И).

Вообщем такой вот фарш, но работает запрос.
Всем спасибо за участие
Dee63 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с Active Directory SuBwooFer Общие вопросы .NET 0 28.12.2009 22:44
Соединение с Active Directory luckyfuck Помощь студентам 6 03.11.2008 13:32
Помощь с Active Directory banzai Windows 1 16.07.2008 21:44