当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 将 Exchange 或 Office 365 全局地址列表 (GAL) 导出到 CSV

作者:精品下载站 日期:2024-12-14 23:08:39 浏览:13 分类:玩电脑

将 Exchange 或 Office 365 全局地址列表 (GAL) 导出到 CSV


让我们考虑将 Exchange 全局地址列表 (GAL) 或脱机通讯簿导出到文本 CSV 文件的一些方法。 GAL 包含本地 Exchange 组织或 Exchange Online (Office 365) 租户的所有电子邮件地址。您可以将 CSV 文件与公司地址簿中的联系人列表结合使用,将联系人传输并导入到第三方电子邮件客户端或电子邮件服务。

让我们处理一些导出工具:这些工具可以是 Exchange 管理中心PowerShellMS Access、Outlookcsvde 实用程序。

如何在本地 Exchange Server 中将全局地址列表导出为 CSV?

最简单的方法是直接从 Exchange 管理中心 (EAC) 控制台导出地址列表。为此,请转到收件人 -> 邮箱部分,单击...,然后选择将数据导出到 CSV 文件

[玩转系统] 将 Exchange 或 Office 365 全局地址列表 (GAL) 导出到 CSV

接下来,您可以选择要导出到 CSV 文件的用户属性(属性)。

[玩转系统] 将 Exchange 或 Office 365 全局地址列表 (GAL) 导出到 CSV

但是,您只能通过这种方式导出用户的电子邮件地址。要导出通讯组的地址,您需要转到并从那里导出(类似于联系人、资源、共享)。

要获取域中的地址列表,您可以使用 PowerShell cmdlet Get-Recipient。例如,我们的任务是显示用户名列表、他们的 SMTP 地址和电话号码。从 PowerShell 连接到 Exchange Server 并运行以下命令:

Get-Recipient| Select-Object Name,PrimarySmtpAddress, Phone

[玩转系统] 将 Exchange 或 Office 365 全局地址列表 (GAL) 导出到 CSV

要仅显示默认全局地址列表条目,请使用此过滤器:

$filter = (Get-GlobalAddressList 'Default Global Address List').RecipientFilter
Get-Recipient -ResultSize unlimited -RecipientPreviewFilter $filter | Select-Object Name,PrimarySmtpAddress, Phone

Get-Recipient 结果仅限于 1000 个对象。要获取更多地址,请使用

-ResultSize Unlimited

范围。

从列表中排除地址簿中隐藏的条目(HiddenFromAddressLists属性)。使用 Export-CSV cmdlet 将结果导出到 CSV 文件:

Get-Recipient -RecipientPreviewFilter $filter | Where-Object {$_.HiddenFromAddressListsEnabled -ne $true} | Select-Object Name,PrimarySmtpAddress, Phone | Export-CSV c:\exchange\GAL.csv -NoTypeInformation

您还可以导出 GAL 中的邮箱列表,如下所示:

Get-mailbox -results unlimited | Where-Object {$_.AddressListMembership -like “*Default Global Address List*”} | Select-Object DisplayName,UserPrincipalName,AddressListMembership,HiddenFromAddress

要从 Active Directory 导出数据,您可以使用 csvde.exe 控制台工具。

显示用户数据及其电子邮件地址的命令如下所示:

CSVDE -r "(&(objectClass=person)(mail=*))" -l displayName,proxyAddresses -f Exchange-GAL.csv

结果,您会得到如下地址列表:

“CN=LondTest,OU=Service,DC=corp,DC=a-d,DC=com",LondTest,smtp: [email protected]

您可以使用 AD PowerShell 模块中的 PowerShell cmdlet Get-ADUser 和 Get-ADGroup 来获取具有 SMTP 地址的用户和组的列表。让我们从特定 OU 导出具有 SMTP 地址(代理地址 AD 属性)的用户列表:

Get-ADUser -Filter * -SearchBase 'OU=London,OU=UK,DC=a-d,DC=com' -Properties proxyaddresses | Select-Object Name, Proxyaddresses| Export-CSV C:\PS\AD_OU_Export_GAL.csv

从 Exchange Online (Microsoft 365) 导出全局地址列表

Exchange Online Web 界面 (https://admin.exchange.microsoft.com/) 中没有用于导出所有 GAL 内容的内置工具。但是,您可以将用户邮箱、通讯组或资源邮箱的列表一一导出到 CSV 文件。为此,请转到收件人 -> 邮箱,然后选择导出

[玩转系统] 将 Exchange 或 Office 365 全局地址列表 (GAL) 导出到 CSV

同样,您可以导出联系人列表、通讯组列表、启用邮件的组。

使用 PowerShell 从 Exchange Online (Microsoft 365) 租户导出全局地址列表更加容易和方便。使用 EXO v2 模块连接到您的 Exchange Online 租户:

Connect-ExchangeOnline

使用以下命令列出可用的全局地址列表:

Get-GlobalAddressList | Select-Object Name

[玩转系统] 将 Exchange 或 Office 365 全局地址列表 (GAL) 导出到 CSV

在我们的示例中,仅存在“默认全局地址列表”。此地址列表包括组织中所有启用邮件的对象(用户、组、通讯组)。

让我们获取全局地址列表的过滤器:

$Filter = (Get-GlobalAddressList 'Default Global Address List').RecipientFilter

以下过滤器用于将对象添加到 GAL:

((Alias -ne $null) -and (((ObjectClass -eq 'user') -or (ObjectClass -eq 'contact') -or (ObjectClass -eq 'msExchSystemMailbox') -or (ObjectClass -eq 'msExchDynamicDistributionList') -or (ObjectClass -eq 'group') -or (ObjectClass -eq 'publicFolder'))))

现在,您可以从 Exchange Online 租户获取所有 SMTP 地址的列表,并将其导出到 CSV 文件:

Get-Recipient -RecipientPreviewFilter $Filter | Select-Object Name, PrimarySmtpAddress,RecipientType | Export-CSV C:\PS\Export_Office365_GAL.csv -NoTypeInformation

[玩转系统] 将 Exchange 或 Office 365 全局地址列表 (GAL) 导出到 CSV

Exchange Online 中所有可能的收件人类型均已导出到 CSV 文件:UserMailbox、MailUser、MailUniversalDistributionGroup、MailContact、DynamicDistributionGroup。

从 Outlook 或 Access 导出全局地址列表

如果您在 Exchange 中没有特权,则可以使用 MS Office/Office 365 中的程序从用户的计算机导出组织的全局地址列表。

您无法直接从 Outlook 导出全局地址列表的内容。将 GAL 内容导出到文件的唯一解决方法是将组织地址簿中的所有收件人添加到个人联系人列表(地址簿 -> 全局地址列表 -> CTRL+A -> 添加到联系人)。然后,您可以通过导入-导出功能(文件 -> 打开和导出 -> 导入/导出)将 Outlook 联系人导出为 CSV。您必须将原始联系人复制到 Outlook 临时联系人文件夹。正如您所看到的,这种方法不是很方便。

[玩转系统] 将 Exchange 或 Office 365 全局地址列表 (GAL) 导出到 CSV

最后,为非管理员用户导出 GAL 的最不明显但非常简单明了的方法是使用 Microsoft Access 中的 Exchange 连接。

  1. 运行Microsoft Access并在其菜单中选择文件->打开

  2. 在文件类型中选择Exchange()

    [玩转系统] 将 Exchange 或 Office 365 全局地址列表 (GAL) 导出到 CSV

  3. 在源列表中选择全局地址列表

    [玩转系统] 将 Exchange 或 Office 365 全局地址列表 (GAL) 导出到 CSV

  4. 您将获得一个平面 Access 表,其中包含来自 Exchange 地址簿的数据;

  5. 现在您可以将此数据从数据库导出到 CSV 文件。

您所要做的就是导入 Excel 中收到的 CSV 文件并根据需要进行修改。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯