#vb.net #vba #excel
#vb.net #vba #excel
Вопрос:
Итак, у меня есть таблица сотрудников Excel, в которой есть вся информация о них. Я пытаюсь импортировать эту информацию в AD, но для этого мне также нужно получить имя пользователя для этих пользователей. И я хотел бы, чтобы код vba или vb.net код, который в основном принимает значение каждой строки в столбце D и ищет его в AD, возвращает имя пользователя и добавляет его в столбец A. Возможно ли что-то подобное?
Комментарии:
1. Я знаю сторону Excel, но не знаком с AD. Это будет зависеть от API для AD — можете ли вы представить свои наилучшие предположения о том, как вы будете действовать?
Ответ №1:
Это возможно с ADO.NET. Я не могу попробовать это в моей текущей среде, но я успешно использовал это в прошлом:
Добавьте ссылку на библиотеку типов ADO (msadoXX.dll ).
Создайте подключение к ActiveDirectory, используя свои собственные учетные данные. Иногда это работает без указания ваших учетных данных (единый вход):
Dim Con As New Connection
con.Provider = "ADsDSOObject"
oConnect.Properties("User ID") = "userme"
oConnect.Properties("Password") = "xxxx"
oConnect.Properties("Encrypt Password") = True
oConnect.Open "MyExcelConnection", stUser, stPass
Затем создайте команду:
Dim command As New Command
Set command.ActiveConnection = oConnect
command.CommandText =
"<LDAP://dc.company.com/ou=accounting,dc=company,dc=com>;(objectClass=user);displayName,mail;subtree"
Затем выполните команду запроса:
Dim rs As ResultSet
Set rs = cmd.Execute
While Not rs.EOF
X = rs.Fields(0).Value
Y = rs.Fields(1).Value
rs.MoveNext
Wend
Конечно, вам придется адаптировать запрос к вашим потребностям.