Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > VB6 > ActiveDirectory и VB 6.0 |
Автор: Kverter 7.11.2013, 11:00 |
Здравствуйте!!!Возник такой вопрос: есть сервер с AD,есть клиент написанный на VB с возможностью подключения dll. Стоит задача написать dll которая возвращает свойства некого объекта из AD. Такое возможно сделать на VB 6.0? Просто я написал библиотеку на С# но ее ни как не подключить к проекту на VB. |
Автор: Akina 7.11.2013, 11:14 |
А зачем под такую фигню DLL клепать? эту информацию ты можешь прямо в проекте получать, либо дёрнув за соотв. API-функцию, либо за что-нить более высокое - скажем, через WMI... |
Автор: Kverter 7.11.2013, 11:20 | ||
Затем что уже есть приложуха написанная, к ней нужно дописать dll, вообщем вот что я пока надумал
|
Автор: Akina 7.11.2013, 12:57 |
А попробуй покопаться в WMI-класссах... в том же Win32_Groups, к примеру... ну а коли совсем не получится - дёрни тот же фреймворк, ne же функцию, но из VB. Или ещё проще - на VB.Net, для него это занятие так и вовсе родное - с фреймворком общаться. |
Автор: Kverter 7.11.2013, 14:31 |
Появился другой вопрос еще,как вернуть имя текущего доменного пользователя? |
Автор: Akina 7.11.2013, 14:47 |
НА самом деле вопрос-то неоднозначный. Сеанс может быть подключен сразу к нескольким сервисам каталога, причём с разными именами учётных записей. Думаю, хотя и не убеждён, что нужно будет шерстить пространство имён LDAP: Добавлено через 19 секунд PS. Проверить не могу - у меня eDir. |
Автор: Kverter 7.11.2013, 15:57 | ||
Получил полное имя пользователя с помощью след. функции:
только долговато,пока все записи переберет,теперь другой вопрос у меня есть имя пользователя в AD(CN=.....),могу ли я вернуть полный путь? |
Автор: Akina 7.11.2013, 16:05 | ||
А зачем перебор всех аккаунтов? кто мешает сразу получить нужную запись?
|
Автор: Kverter 12.11.2013, 09:01 |
Вывыливается ошибка, не могу понять почему, вроде все логично |
Автор: Akina 12.11.2013, 09:05 |
А собирай не всё сразу, а по одному шажку. Я в принципе не убеждён до конца в GetObject.ExecQuery(0)... Да и текст ошибки мог бы показать. |
Автор: Kverter 12.11.2013, 09:38 | ||||
Заработало вот так:
Можешь помочь еще в поиске пользователя в AD, вот функция получения домена
нужно найти пользователя в этом домене. Имя пользователя возвращает функция WMI_UserFullName. |
Автор: Kverter 12.11.2013, 10:07 |
можно обойтись без "winmgmts"?? Вроде как эта штука не работает в windows 2000(а нужно) |
Автор: Kverter 12.11.2013, 11:26 |
Вроде все сделал, теперь когда закомпилил в exe на моей машине все норм, на другой Run-time error ‘429’ Activex component can't create object. как я понимаю каких то библиотек не хватает,как узнать каких? |
Автор: Kverter 14.11.2013, 09:13 | ||
Доброго времени суток!!!!Вроде все дописал, все работает, но не на всех машинах. На некоторых возникает 429 при использовании любой из написанных функций. вот пример одной из них:
я так понимаю он не создает объект,вопрос почему???? |
Автор: Akina 14.11.2013, 09:26 |
Неплохо бы указывать, на какой строке код валится. На GetObject? на .Get? Опять же посмотри повнимательнее на http://msdn.microsoft.com/en-us/library/ms806997.aspx#buildingadapps_using_good_ldap, запроси расширенный код ошибки... Кстати, а нафига промежуточная переменная? да ещё не определённая на уровне функции? |
Автор: Kverter 14.11.2013, 09:33 |
Вываливается на GetObject. Добавлено через 2 минуты и 50 секунд Я думаю может дело в какой нибудь либи от vb? не на всех машинах стоит vb |
Автор: Akina 14.11.2013, 09:44 |
Используемые приложением библиотеки ты можешь посмотреть тем же ProcessExplorer, скажем. Но чаще при таком сообщении проблема не в отсутствии, а в недостатке прав. Проверь ЛДАП-классиды на проблемной машине... |
Автор: Kverter 14.11.2013, 09:47 |
А можно поподробней???не совсем все понял Добавлено через 7 минут и 21 секунду Может быть проблема в неких компонентах vb??? просто погуглив у некоторых возникает такая ошибка из за того что не зарегистрирован в системе какой либо компонент. |
Автор: Akina 14.11.2013, 10:17 |
Вот я и говорю - проверяй LDAP-овские CLSID-ы на наличие и корректность. |
Автор: Kverter 14.11.2013, 10:40 |
Проблема в том что я не знаю как это проверить хД |