Библиотека для платформы IBM Notes/Domino, облегчающая взаимодействие и интеграцию с MS Active Directory.
- Язык: LotusScript
- Текущая версия: 2.1.1
- Лицензия: MIT
- Технические ограничения использования: работа только на ОС под управлением Windows
Библиотека берет на себя рутинные операции работе с MS Active Directory (MS AD) по протоколу LDAP с помощью провайдера ADSI (Active Directory Service Interface), оборачивая громоздкие вызовы в объекты и методы. Для взаимодействия с ADSI используются его COM-объекты, включенные в семейство ОС Windows.
- Для использования библиотеки вы можете импортировать DXL-файл в свое Notes-приложение. Стандартной функции по импорту из DXL нет, поэтому вы можете создать агент, воспользовавшись кодом, приведенным здесь
- Создать в Notes-приложении новую библиотеку и скопировать все содержимое lss-файла.
- Создайте в Notes-приложении новую библиотеку и скопируйте все содержимое lss-файла
- Подключитесь к MS AD по своими учетными данными
Dim ad As New ADConnector("MyOrg.org", "", "")
- Получите объект вашей учетной записи
Dim adUser As ADUser
Set adUser = ad.FindObj(Nothing, AD_OBJECT_USER, "YOUR_LOGIN", AD_ATTRIBUTE_SAMACCOUNTNAME)
- Убедитесь что это именно он
MsgBox adUser.ADsPath
- AD_OBJECT_OU - контейнер
- AD_OBJECT_USER - пользователь
- AD_OBJECT_GROUP - группа
- AD_OBJECT_COMPUTER - устройство
- AD_ATTRIBUTE_DISTINGUISHEDNAME
- AD_ATTRIBUTE_SAMACCOUNTNAME
- AD_ATTRIBUTE_CN
- AD_ATTRIBUTE_NAME
- AD_ATTRIBUTE_DESCRIP
- ADS_PROPERTY_CLEAR (1) - очистить
- ADS_PROPERTY_UPDATE (2) - обновить
- ADS_PROPERTY_APPEND (3) - добавить
- ADS_PROPERTY_DELETE (4) - удалить
'Используя текущую учетную запись
Dim ad As New ADConnector("MyOrg.org", "", "")
'С указанием учетной записи для подключения
Dim ad As New ADConnector("controller-1.MyOrg.org", "MyOrg\LotusAccount", "qwerty")
Dim ad As New ADConnector("MyOrg.org", "", "")
Dim adContainer As ADOU
Dim adUser As ADUser
'Поиск контейнера, где будет создан объект
Set adContainer = ad.FindObj(Nothing, AD_OBJECT_OU, "UserContainer", AD_ATTRIBUTE_NAME)
'Создание объекта
Set adUser = ad.CreateADObject(AD_OBJECT_USER, "Petrov-IS", adContainer)
Dim ad As New ADConnector("MyOrg.org", "", "")
Dim adUser As ADUser
'Поиск пользователя по всему дереву
Set adUser = ad.FindObj(Nothing, AD_OBJECT_USER, "Petrov-IS", AD_ATTRIBUTE_SAMACCOUNTNAME)
'Поиск пользователя в поддереве контейнера
Dim adContainer As ADOU
Set adContainer = ad.FindObj(Nothing, AD_OBJECT_OU, "UserContainer", AD_ATTRIBUTE_NAME) 'Поиск контейнера
Set adUser = ad.FindObj(adContainer, AD_OBJECT_USER, "Petrov-IS", AD_ATTRIBUTE_SAMACCOUNTNAME)
Dim ad As New ADConnector("MyOrg.org", "", "")
Dim adUser As ADUser
Set adUser = ad.FindObj(Nothing, AD_OBJECT_USER, "Ivanov-II", AD_ATTRIBUTE_SAMACCOUNTNAME)
MsgBox ad.Get("Department")
Dim ad As New ADConnector("MyOrg.org", "", "")
Dim adUser As ADUser
Dim adContainer As ADOU
Set adUser = ad.FindObj(Nothing, AD_OBJECT_USER, "Ivanov-II", AD_ATTRIBUTE_SAMACCOUNTNAME)
Set adContainer = adUser.GetParent()
MsgBox adContainer.ToString()
Dim ad As New ADConnector("MyOrg.org", "", "")
Dim adUser As ADUser
Set adUser = ad.FindObj(Nothing, AD_OBJECT_USER, "Ivanov-II", AD_ATTRIBUTE_SAMACCOUNTNAME)
Call adUser.ModifyAttribute(ADS_PROPERTY_CLEAR, "Department", "")
Call adUser.ModifyAttribute(ADS_PROPERTY_UPDATE, "Company", "Live Scripts")
Call adUser.Save()
Dim ad As New ADConnector("MyOrg.org", "", "")
Dim adUser As ADUser
Set adUser = ad.FindObj(Nothing, AD_OBJECT_USER, "Ivanov-II", AD_ATTRIBUTE_SAMACCOUNTNAME)
Call adUser.Put("Company", "Live Scripts")
Call adUser.Save()
Dim ad As New ADConnector("MyOrg.org", "", "")
Dim adUser As ADUser
Dim adContainer As ADOU
Set adUser = ad.FindObj(Nothing, AD_OBJECT_USER, "Ivanov-II", AD_ATTRIBUTE_SAMACCOUNTNAME)
Set adContainer = ad.FindObj(Nothing, AD_OBJECT_OU, "HR Department", AD_ATTRIBUTE_NAME)
MsgBox adContainer.MoveHere(adUser, "")
Dim ad As New ADConnector("MyOrg.org", "", "")
Dim adUser As ADUser
Dim adGroup As ADGroup
Set adUser = ad.FindObj(Nothing, AD_OBJECT_USER, "Ivanov-II", AD_ATTRIBUTE_SAMACCOUNTNAME)
Set adGroup = ad.FindObj(Nothing, AD_OBJECT_Group, "Group Name", AD_ATTRIBUTE_NAME)
MsgBox adGroup.AddMember(adUser)