从 Active Directory 中提取信息

从 Active Directory 中提取信息

我有两组数据,偶尔需要交叉引用,因为两组数据都不完整。我从人力资源部收到一份文件,其中包含员工的人口统计信息(包括他们的电子邮件地址)。我还可以访问从 Active Directory 中提取的 Outlook 联系人。有时我需要使用某人的电子邮件地址来查找他们的网络“别名”,到目前为止,我一直在逐个查找人员。

然而,我引用这些数据的需求越来越大,有时我需要为数百个人获取别名。

有没有办法从 Active Directory 下载/查询这些信息,以便我可以在 Excel 中加入这些数据?

编辑:我没有能力运行 PowerShell 脚本。

展望联系人

答案1

我在 Stack Overflow 上找到了合适的解决方案这里。 我调整了正在编译的数据并最终将其作为 Excel 中的最终子数据。

Sub GALExport()

Dim appOL As Object
Dim oGAL As Object
Dim oContact As Object
Dim oUser As Object
Dim arrUsers(1 To 65000, 1 To 5) As String
Dim UserIndex As Long
Dim i As Long

Set appOL = CreateObject("Outlook.Application")
Set oGAL = appOL.GetNameSpace("MAPI").AddressLists("Global Address List").AddressEntries

For i = 1 To oGAL.Count
    Set oContact = oGAL.Item(i)
    If oContact.AddressEntryUserType = 0 Then
        Set oUser = oContact.GetExchangeUser
        If Len(oUser.lastname) > 0 Then
            UserIndex = UserIndex + 1
            arrUsers(UserIndex, 1) = oUser.Name
            arrUsers(UserIndex, 2) = oUser.PrimarySMTPAddress
            arrUsers(UserIndex, 3) = oUser.Alias
            arrUsers(UserIndex, 4) = oUser.JobTitle
            arrUsers(UserIndex, 5) = oUser.Department
        End If
    End If
Next i

appOL.Quit

Range("A1").Value = "Name"
Range("B1").Value = "Email Address"
Range("C1").Value = "Network Alias"
Range("D1").Value = "Job Title"
Range("E1").Value = "Department"

If UserIndex > 0 Then
    Range("A2").Resize(UserIndex, UBound(arrUsers, 2)).Value = arrUsers
End If

Set appOL = Nothing
Set oGAL = Nothing
Set oContact = Nothing
Set oUser = Nothing
Erase arrUsers

End Sub

相关内容