使用 PowerShell 脚本将联系人批量导入到 Exchange Online (Office 365) |第 2 部分#2
本文是我们的两篇文章系列中的第二篇文章,其中我们回顾了使用 PowerShell 将联系人批量导入到 Exchange Online (Office 365) 的过程。
我们将在本文中回顾的两个主题是:
- 使用“批量导入联系人”PowerShell 脚本。使用 PowerShell 脚本将简化从 CSV 文件导入数据的过程,并且还包括其他相关任务。
- 如何操作 CSV 文件中的信息。基本假设是从当前邮件基础结构导出的信息与用于将数据导入 Exchange Online 所需的数据结构不完全兼容。在本节中,我们将回顾一些示例 - 如何使用 Excel 公式来操作现有数据。
使用 PowerShell 脚本将联系人批量导入到 Exchange Online (Office 365) |系列文章
- 使用 PowerShell 将联系人批量导入到 Exchange Online (Office 365) |第 1 部分#2
- 使用 PowerShell 脚本将联系人批量导入到 Exchange Online (Office 365) |第 2 部分#2
使用导入联系人 PowerShell 脚本
为了简化将联系人批量导入到 Exchange Online 的过程,我准备了一个 PowerShell 脚本,其中包含以下选项:
- 使用 Office 365 管理员凭据登录 - 此选项将帮助我们创建远程 PowerShell 会话,将我们连接到 Exchange Online。
- 从 CSV 文件导入外部联系人 - 此选项将帮助我们运行 PowerShell 命令的两个阶段 - 第 1 阶段 - 从 CSV 文件导入信息并在 Exchange Online 中创建所需的外部联系人,第二阶段 - 导入以下属性每次接触。
- 从 CSV 文件删除外部联系人 - 如果我们想要删除从 CSV 文件导入 Exchange Online 的外部联系人,我们可以使用此选项。
- 从 CSV 文件导入通讯组成员 - 此选项将帮助我们使用从 CSV 文件导入的外部联系人填充现有通讯组。
- 导出有关外部联系人的信息 - 此选项将帮助我们将有关现有 Exchange Online 外部联系人的数据导出为三种类型的文件格式:TXT、CSV 和 HTML。
运行 import-contacts.ps1 PowerShell 脚本
下载 PowerShell 并解压 ZIP 文件后,将 PowerShell 脚本保存在特定文件夹中。
在我们的场景中,我们已将 import-contacts.ps1 保存到 script 中的名为 script 的文件夹中strong>C:驱动器。
如果这是您第一次在桌面上运行 PowerShell,您将需要以管理员身份运行 PowerShell 控制台并运行 PowerShell 命令:
Set-ExecutionPolicy Unrestricted -force
我们将通过以下步骤从 PowerShell 控制台运行 import-contacts.ps1:
1.“导航”PowerShell 脚本位置 PowerShell 脚本
为了能够执行 PowerShell 脚本,我们需要导航到 PowerShell 脚本所在的路径。
在我们的场景中,PowerShell 脚本位于 c:\script 文件夹中。
键入以下命令并按 ENTER
cd c:\script2. 提供 PowerShell 脚本名称
要执行 PowerShell 脚本,我们需要使用以下字符启动命令 - “.\”,然后键入 PowerShell 脚本的名称。
例如:.\ import-contacts.ps1
我们可以使用的另一个有用的选项是 PowerShell 自动完成 功能。
我们可以键入 PowerShell 脚本名称的首字母,而不是编写 PowerShell 脚本的“全名”,然后让PowerShell 完成脚本名称的其余部分。
例如,要调用PowerShell脚本,我们需要编写以下字符 - .\,然后键入PowerShell脚本的第一个字母,例如imp< 。
要启动自动完成功能,我们按TAB键。
“点击”TAB键后,PowerShell控制台将自动自行补全PowerShell脚本名称的其余部分。
我们需要完成的第一个任务是 - 使用远程 PowerShell 连接到 Exchange Online。
要启动远程连接过程,请选择菜单“0”并按ENTER键
将出现弹出凭据的窗口。
我们需要提供 Office 365 全局管理员凭据。
菜单 1 - 从 CSV 文件导入外部联系人
使用菜单“1”,我们将从 CSV 文件导入信息,在 Exchange Online 中创建外部联系人对象并导入联系人属性。
在此阶段,我们假设我们已经将所需的联系信息导出到 CSV 文件。
输入数字“1”,然后按ENTER键。
出现提示,要求我们提供 CSV 文件的路径。
在我们的场景中,CSV 文件名为 import-contacts.ps1,该文件位于 Temp <驱动器上的文件夹C:
要开始导入过程,请按ENTER键。
信息已成功导入
在下面的屏幕截图中,我们可以看到在 Exchange Online 中创建的 CSV 文件中的外部联系人。
菜单 3 - 从 CSV 文件导入通讯组成员
使用此选项,我们将 CSV 文件中显示的所有外部收件人添加到现有通讯组。
此选项使我们能够完成与管理外部联系人流程相关的常见要求。
在我们的场景中,我们将创建一个新的通讯组。
通讯组名称是 - 外部联系人
输入数字“3”,然后按ENTER键。
我们需要提供两个参数:
1. CSV文件的路径
出现提示,要求我们提供 CSV 文件的路径。
在我们的场景中,CSV 文件名为 ExternalContacts_01.csv,该文件位于 Temp 驱动器上的文件夹 C:
要继续下一步,请按ENTER键。
2. 通讯组电子邮件地址
提供通讯组的电子邮件地址
要开始导入过程,请按ENTER键。
在下面的屏幕截图中,我们可以看到 CSV 文件中显示的外部收件人已成功添加为外部联系人通讯组的成员
菜单 4 - 导出有关外部联系人的信息
使用导出选项,我们将能够导出有关现有 Exchange Online 外部联系人的信息。
PowerShell 命令将以三种文件格式导出有关外部联系人的信息:TEXT、CSV 和 HTML。
PowerShell 命令将在 C: 驱动器中创建一个名为 - INFO 的新文件夹
输入数字“4”,然后按ENTER键。
信息已导出,并在 INFO 文件夹中“等待”我们。
在下面的屏幕截图中,我们可以看到PowerShell命令使用三种类型的文件格式导出信息。
这是导出为 HTML 文件格式的信息示例:
如何操作 CSV 文件中的信息
在本节中,我们将回顾如何“操作”我们将使用 PowerShell 导入到 Exchange Online 的 CSV 文件中存在的信息。
基本假设是,在许多情况下,我们导出的信息并不“完美”,并且不包含有关特定联系人的所有必需信息。
例如,联系人的“私人姓名”缺失(不存在)的场景,或者联系人的信息不包含联系人的公司名称的场景。
使用Excel这样的工具,可以帮助我们通过运用Excel各种Excel公式来“玩弄”现有的信息。
在下一节中,我们将回顾三个使用 Excel 公式操作现有数据的示例。
示例 1 - 从电子邮件地址中提取姓名
场景描述
在查看 CSV 文件时,我们注意到某些联系人缺少“名字”。
我们想通过“窃取”联系电子邮件地址中的个人姓名来“填写”信息。
为了能够完成此任务,我们将使用名为 - FIND 的 Excel 函数。
在我们的场景中,我们指示 FIND 函数转到包含联系人电子邮件地址和“获取”电子邮件地址的左侧部分(收件人的别名)。
我们使用的函数的语法是:
=LEFT(E2,FIND(“@”,E2)-1)
示例 2 - 从电子邮件地址中提取公司名称
场景描述
在查看 CSV 文件时,我们注意到某些联系人缺少“公司名称”。
我们希望通过“窃取”作为电子邮件地址域名一部分出现的公司名称来“填写”信息。
为了能够完成此任务,我们将使用名为 - FIND 的 Excel 函数。
在我们的场景中,我们指示 FIND 函数转到包含联系人电子邮件地址的单元格,并“获取”电子邮件地址的左侧部分(收件人的别名)。
我们使用的函数的语法是:
=LEFT(REPLACE(E4,1,FIND(“@”,E4),“”),FIND(“.”,REPLACE(E4,1,FIND(“@”,E4),“”)) -1)
示例 3 - 合并不同单元格的值 + 添加空格
场景描述
在查看 CSV 文件时,我们注意到“名称”(也描述为 -我们的某些联系人缺少显示名称或全名。
我们想通过“窃取”作为电子邮件地址域名一部分出现的公司名称来“填写”信息。
为了能够完成此任务,我们将使用名为 - CONCATENATE 的 Excel 函数。
在我们的场景中,我们指示 CONCATENATE 函数转到 Excel 单元格包含名字的 Excel 单元格,并将这两个单独的值“组合”为一个值。
我们使用的函数的语法是:
=CONCATENATE(E8, ” “,F8)
下载 Excel 文件
您可以下载 Excel 文件:Sample-Contacts.xls



















