Excel — Получение имени пользователя из объявления на основе отображаемого имени в таблице Excel

#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
  

Конечно, вам придется адаптировать запрос к вашим потребностям.