При разработке скриптов для тех или иных задач, иногда программе требуется получить информацию о пользователе из ActiveDirectrory, который в данный момент эту программму запустил.
Например, запустив xls файл под учетной записью Петрова, мы можем исправлять только те строки где ответственным стоит Петров.
Напишем функцию VBA которая выдает полное ФИО сотрудника, на чьем компьютере запущена программа
Dim objAD, objUser As Object
Public Function UserName()
Set objAD = CreateObject("ADSystemInfo")
Set objUser = GetObject("LDAP://" & objAD.UserName)
UserName = objUser.DisplayName
End Function
Вместо аттрибута DisplayName в строке UserName = objUser.DisplayName мы можем написать любой другой, который нам надо получить. Электронный адрес, номер кабинета, должность и так далее. Аттрибутов достаточно много и более полный список представлен в материале Карточка сотрудника Active Directory через Excel