使用 CSV_Parser.ps1 脚本创建和配置收件人

适用于: Live@edu

上一次修改主题: 2011-11-23

下载和使用 CSV_Parser.ps1 Windows PowerShell 脚本来添加新用户、更新现有用户或删除现有用户。 该脚本使用逗号分隔值 (CSV) 文件来指定用户,这是同时创建和配置多个用户的绝佳途径。

注意   您还可以在 Exchange 控制面板中使用 CSV 文件创建多个新用户。 有关详细信息,请参阅使用 CSV 文件导入新 Exchange Online 用户

该脚本用于以下用户类型:

  • 邮箱用户   邮箱用户是基于云的域中的用户,这些用户拥有一个邮箱和一个对应的 Windows Live ID。
  • 邮件联系人   邮件联系人也称为外部联系人,他们在域中没有 Windows Live ID 或邮箱。 对于基于云的服务,邮箱联系人是您的组织外部的用户。 但是,其联系信息包括可在通讯簿中显示的电子邮件地址。
  • 邮件用户   邮件用户在域中也没有邮箱。 但是,对于基于云的服务,邮箱用户是您的组织内部的用户,且他们可以拥有 Windows Live ID。例如,他们可以是组织中具有内部部署电子邮件帐户的用户。

有关详细说明,请参阅本主题后面的部分:

  • CSV 文件的选项
    • CSV 文件的重要特性
    • CSV 文件的可选特性
  • CSV_Parser.ps1 脚本的选项
  • 如何使用 CSV_Parser.ps1 脚本?
  • 对 CSV_Parser.ps1 脚本进行故障排除
  • 不支持的特性

开始之前

若要了解如何安装和配置 Windows PowerShell 并连接到服务,请参阅使用 Windows PowerShell

您在运行该脚本前不必将 Windows PowerShell 连接到基于云的服务。 该脚本会为您进行连接。

下载脚本

此处下载 CSV_Parser.ps1 Windows PowerShell 脚本。

下载该脚本文件后,请执行以下步骤:

  1. 右键单击该脚本文件,然后选择“属性”。
  2. 在“常规”选项卡上,在包含“此文件来自其他计算机,可能被阻止以帮助保护该计算机”字样的“安全”部分中,单击“取消阻止”。 如果没有“安全”部分,则可跳过此步骤。
  3. 单击“确定”。

CSV 文件的选项

可以使用任何文本编辑器或 Microsoft Office Excel 等应用程序创建 CSV 文件。 按照本主题的“CSV 文件格式”部分中的说明设置该文件的格式,并使用扩展名“.csv”保存该文件。

备注

如果 CSV 文件包含非 ASCII 字符,请务必使用 UTF-8 编码保存 CSV 文件。 根据应用程序的不同,如果计算机的系统区域设置与 CSV 文件中使用的语言相匹配,则使用 UTF-8 编码保存 CSV 文件可能会更容易。
另外,如果您使用 Excel 来创建或修改 CSV 文件,请不要在单元格值中包括双引号。 将文件另存为 CSV 文件时,Excel 会自动向包含空格的所有单元格值添加双引号。 可以在“记事本”或其他文本编辑器中检查该 CSV 文件以确认这些值不包含额外的双引号。

CSV 文件的第一行(即“标题行”)列出了在后续行中指定的特性(字段)的名称。 每个特性名称都用逗号分隔开。

标题行下的每一行表示一个单独的用户,并提供 Windows Live ID、基于云的邮箱和地址簿列表所需的信息。 每个用户行中的特性的顺序必须与标题行中特性名的顺序相同。 每个特性值都用逗号分隔开。 如果特定记录的特性值是 Null,则不要键入该特性的任何内容。 但是,请确保包括将 Null 值与下一个特性分隔开的逗号。

CSV 文件格式

下面是一个格式正确的 CSV 文件的示例。在本示例中,将提供两个邮箱用户:一个邮箱用户对应 Tamara Johnston,另一个邮箱用户对应 Ayla Kol。

Action,Type,Name,EmailAddress,Password,FirstName,LastName,DisplayName
Add,Mailbox,Tamara Johnston,TamaraJ@students.contoso.edu,P@ssw0rd,Tamara,Johnston,Tamara Johnston
Add,Mailbox,Ayla Kol,Aylak@students.contoso.edu,P@ssw0rd,Ayla,Kol,Ayla Kol

CSV 文件的重要特性

此表列出了 CSV 文件中使用的重要特性。 这些特性中有很多始终是必需的。

特性名称 必需/可选 描述

Action

始终必需

Action 是指正在执行的过程的类型。 有效选项包括:

  • Add   此值将在域中创建新用户。 如果您尝试 Add 操作,并且您指定的 Name 特性和 Type 特性与现有用户的 Name 特性和 Type 特性相匹配,则 CSV_parser.ps1 脚本会将 Add 操作自动转换为对现有用户执行的 Update 操作。 如果 Name 特性匹配,但 Type 特性是不同的,则 Add 操作将失败。
    如果尝试 Add 操作来创建邮箱用户或邮件用户,则可能会意外指定非托管 Windows Live ID,Add 操作将会失败。 非托管 ID(也称为“作为登录 ID 的电子邮件”(EASI ID))是您在基于云的服务中注册域之前由用户创建的 Windows Live ID。 您可以使用 ImportLiveIDEvictLiveID 特性创建用户。 有关非托管 Windows Live ID 的详细信息,请参阅导入或收回现有 Windows Live ID
  • Update   此值将更新域中的现有用户。
    警告   如果在标题行中定义了某个特性,但在 Update 操作中将用户的该特性指定为 Null 值,则会从用户中删除该特性的现有值。
  • Delete   此值将从域中删除现有用户。 默认情况下,将不能再使用邮箱和关联的 Window Live ID。 这将删除用户对与 Windows Live ID 关联的所有数据的访问权限(例如,Xbox Live 点数和 Zune 点数),以及对 Windows Live Spaces、Windows Live 群和 Windows Live SkyDrive 上的数据的访问权限。 您可以使用 KeepWindowsLiveID 特性保留 Windows Live ID。
  • PasswordReset   此值将重置现有用户的密码。 使用此操作时,只能指定 NamePassword 特性。 所有其他特性均无法指定。

重要说明   请避免在同一 CSV 文件中组合使用 Add 操作和 Update 操作。并且记住: 如果在标题行中定义特性,但在 Update 操作中将用户的特性指定为 Null 值,则会从用户中删除该特性的现有值。

Type

始终必需

Type 指定用户类型。 有效条目包括:

  • Mailbox   此值指定域中具有邮箱和相应 Windows Live ID 的邮箱用户。
  • MailContact   此值指定邮件联系人,即位于域外且在域中没有 Windows Live ID 或邮箱,但可以使用外部电子邮件地址接收电子邮件的用户。 电子邮件地址不能位于基于云的组织的接受域中。 邮件联系人也称为“外部联系人”。
  • MailUser   此值指定邮件用户,即在域中没有邮箱的用户。 电子邮件地址必须存在于基于云的组织的接受域中。 对组织中没有基于云的邮箱的成员使用 MailUser。 例如,对只有学生和校友拥有基于云的邮箱的大学的教职工使用 MailUser
    CSV_Parser.ps1 脚本将创建具有 Windows live ID 的邮件用户。您可以使用 New-MailUser cmdlet 创建没有 Windows Live ID 的邮件用户。 有关详细信息,请参阅创建邮件用户

Name

始终必需

Name 指定用户的标识符。 创建新邮箱用户或邮件用户时,Name 的值将用作 Windows Live ID 的名称。Name 的值在域中必须是唯一的。 Name 特性对于针对基于云的用户的 Windows PowerShell 操作很重要,但 Name 特性的值在 Windows PowerShell 外部不可见。 DisplayName 特性对现有用户是可修改的且在共享地址簿中可见。

注意   请确保用于 Name 的值在基于云的组织中是唯一的。 如果创建了 Name 值相同但 Windows Live ID 不同的两个帐户,则在将 Windows Live ID 与正确的邮箱关联时可能会出现问题。

DisplayName

  • AddUpdate 操作是可选的
  • 不用于 Delete 操作

DisplayName 指定用户名如何在地址簿和 Exchange 控制面板中显示。 如果在创建新用户时没有为 DisplayName 指定值,则为 DisplayName 使用 EmailAddress 的值。

若要创建显示名称“Last, First”,请用双引号将此值括起来。 如果您使用 Excel 来创建或修改 CSV 文件,请不要在单元格值中包括双引号。

FirstName

  • AddUpdate 操作是可选的
  • 不用于 Delete 操作

FirstName 指定在通讯簿中为用户列出的名。 创建新邮箱用户或邮件用户时,FirstName 的值也将用作 Windows Live ID 的名字。

LastName

  • AddUpdate 操作是可选的
  • 不用于 Delete 操作

LastName 指定在通讯簿中为用户列出的姓。 创建新邮箱用户或邮件用户时,LastName 的值也将用作 Windows Live ID 的姓氏。

EmailAddressWindowsLiveID

  • AddUpdate 操作所必需的
  • 不用于 Delete 操作

EmailAddressWindowsLiveID 是可互换的。 不要在相同的 CSV 文件中使用 EmailAddressWindowsLiveID

EmailAddress 指定新用户的电子邮件地址。 创建新邮箱用户或邮件用户时,EmailAddress 特性将用作主电子邮件地址,并用于创建对应的 Windows Live ID。EmailAddress 的值在基于云的组织中必须是唯一的。

对于邮箱用户和邮件用户,EmailAddress 的值必须位于基于云的组织的接受域中。 对于邮件联系人,EmailAddress 的值不能位于基于云的组织的接受域中。

您不能使用 CSV_Parser.ps1 脚本来更新现有用户的主电子邮件地址或 Windows Live ID。

FederatedIdentity

  • 对于针对联盟域中的邮箱用户和邮件用户的 Add 操作是必需的
  • 不用于 UpdateDelete 操作

FederatedIdentity 在联合域中使用,用于将本地帐户与基于云的邮箱或邮件用户关联。

EmailAddressN,其中 N 是从 2 到 5 的整数。

  • Update 操作是可选的
  • 不用于 AddDelete 操作

EmailAddressN 最多可为用户指定 4 个其他电子邮件地址(称为“代理地址”)。 对于邮箱用户和邮件用户,代理地址必须位于基于云的组织的接受域中。 对于邮件联系人,代理地址不能位于基于云的组织的接受域中。

Password

  • 对于针对邮箱用户和邮件用户的 Add 操作是必需的
  • 对于针对邮箱用户的 Update 操作是可选的
  • 不用于 Delete 操作

Password 是邮箱用户或邮件用户的 Windows Live ID 密码。 Password 特性在您创建新的邮箱用户或邮件用户时是必需的,且可以选择将其用于重置现有邮箱用户的密码。

若要在用户登录后强制其更改代码,请使用 ForceChangePassword 特性。

有关密码的详细信息,请参阅密码准则

ForceChangePasswordResetPasswordOnNextLogon

  • 对于针对邮箱用户的 AddUpdate 操作是可选的
  • 不用于 Delete 操作

ForceChangePasswordResetPasswordOnNextLogon 是可互换的。 不要在相同的 CSV 文件中使用 ForceChangePasswordResetPasswordOnNextLogon

仅当您创建或更新邮箱用户时,ForceChangePassword 才在 CSV_parser.ps1 脚本中可用。 如果 ForceChangePassword 设置为 1,或者标题行中未定义 ForceChangePassword 特性,则新用户在首次登录后必须更改其密码。 将 ForceChangePassword 设置为 0 时,不要求新用户在首次登录后更改其密码。

MailboxPlan

  • 对于邮箱用户执行 Add 操作是可选的
  • 不用于 UpdateDelete 操作

仅当您创建新邮箱用户时,MailboxPlan 才在 CSV_parser.ps1 脚本中可用。 如果不指定 MailboxPlan 的值,则使用组织的默认邮箱计划。 典型的值为 DefaultMailboxPlanGalDisabledMailboxPlan。 有关邮箱计划的详细信息,请参阅Outlook Live 的邮箱计划

EvictLiveID

  • 对于针对邮箱和邮件用户的 Add 操作是可选的
  • 不用于 UpdateDelete 操作

EvictLiveID 仅当您创建邮箱或邮件用户时可用。 使用此特性以便在遇到与您尝试创建的新用户的电子邮件地址匹配的 EASI ID 时创建用户。

当设置为 Y 时,将保留 Windows Live ID 及其所有的现有设置(包括密码)。 但是,Windows Live ID 将会从基于云的域中删除并置于强制重命名状态。 有关详细信息,请参阅导入或收回现有 Windows Live ID

从您的域中收回 Windows Live ID 时,您可以使用相同的名称创建新的 Windows Live ID,但使用的密码必须与收回的 Windows Live ID 的密码不同。

如果在 Add 操作过程中遇到 EASI ID,且您未将 EvictLiveIDImportLiveID 的值指定为 Y,则该用户的 Add 操作将失败。

ImportLiveID

  • 对于针对邮箱用户和邮件用户的 Add 操作是可选的
  • 不用于 UpdateDelete 操作

ImportLiveID 仅当您创建邮箱或邮件用户时可用。 使用此特性以便在遇到与您尝试创建的新用户的电子邮件地址匹配的 EASI ID 时创建用户。

注意   ImportLiveID 在联盟域中不受支持。

当设置为 Y 时,Windows Live ID 及其所有现有设置(包括密码)将会保留,且 Windows Live ID 会与您在域中创建的新邮箱或邮件用户关联。 有关详细信息,请参阅导入或收回现有 Windows Live ID

将 Windows Live ID 导入您的基于云的组织后,您不能收回该 Windows Live ID。一般而言,我们建议不要将 EASI ID 导入基于云的组织中。 此外,如果将 Windows Live ID 导入您的基于云的组织,则 Password 的值将被忽略。

如果在 Add 操作过程中遇到 EASI ID,且您未将 EvictLiveIDImportLiveID 的值指定为 Y,则该用户的 Add 操作将失败。

KeepWindowsLiveID

  • 对于针对邮箱用户和邮件用户的 Delete 操作是可选的
  • 不用于 AddUpdate 操作

KeepWindowsLiveID 仅当您删除邮箱或邮件用户时可用。 当设置为 Y 时,将保留与已删除用户关联的 Windows Live ID。 用户仍可访问与其 Windows Live ID 关联的所有数据(例如,Xbox Live 点数和 Zune 点数),以及 Windows Live Spaces、Windows Live 群和 Windows Live SkyDrive 上的数据。

如果 KeepWindowsLiveID 的值不是 Y,则已删除邮箱的 Windows Live ID 将不能再使用。 用户将失去对与其 Windows Live ID 关联的所有数据的访问权。但是,您通常可以在 30 天内恢复已删除的邮箱和关联的 Windows Live ID。 有关详细信息,请参阅恢复已删除的邮箱

注意   在联盟域中,Windows Live ID 始终保留,所以您不需要使用 KeepWindowsLiveID 特性。

页面顶部

CSV 文件的可选特性

此表列出了可在 CSV 文件中使用的可选特性。 如果没有为这些特性提供值,则它们将保留为空。 这些特性都不用于 Delete 操作。

特性名称 描述

City

City 指定在通讯簿中为用户列出的城市。

Company

Company 指定在通讯簿中为用户列出的公司名称。

CountryorRegion

CountryorRegion 指定 ISO 3166 两字母国家/地区代码或为通讯簿中的用户列出的国家/地区的名称。 您可在“国家/地区”字段中查找 CountryorRegion 的有效值,该字段位于 Exchange 控制面板中的帐户属性的“联系人信息”部分。

CustomAttributeN(其中,N 是 1 到 15 的整数)。

此参数指定 Custom Attribute N 属性,其中 N 是从 1 到 15 的整数。Custom Attribute N 属性在 Exchange 控制面板或通讯簿中不可见。 但是,可以将 CustomAttributeN 值用作 Windows PowerShell 操作(例如,创建动态通讯组)的筛选器。 有关详细信息,请参阅 动态通讯组

Department

Department 指定在通讯簿中为用户列出的部门。

Fax

Fax 指定在通讯簿中为用户列出的传真号码。

HomePhone

HomePhone 指定在通讯簿中为用户列出的家庭电话号码。

Initials

Initials 指定在通讯簿中为用户列出的中间名首字母。

MobilePhone

MobilePhone 指定在通讯簿中为用户列出的移动电话号码。

Notes

Notes 字段指定在通讯簿中为用户列出的其他信息。

Office

Office 指定在通讯簿中为用户列出的办公室位置。

Phone

Phone 指定在通讯簿中为用户列出的工作电话号码。

PostalCode

PostalCode 指定在通讯簿中为用户列出的邮政编码。

StateorProvince

StateorProvince 指定在通讯簿中为用户列出的省/市/自治区。

StreetAddress

StreetAddress 指定在通讯簿中为用户列出的街道地址。

Title

Title 指定在通讯簿中为用户列出的职务。

WebPage

WebPage 指定在通讯簿中为用户列出的网页地址。

页面顶部

CSV_Parser.ps1 脚本的选项

参数 必需 描述

LiveCredential

必需

LiveCredential 参数指定基于云的域中的 Exchange Online 管理员帐户的 Windows Live ID 和密码。 若要指定 LiveCredential 参数的值,请在运行 CSV_Parser.ps1 脚本前将 Windows Live ID 凭据存储在变量中,例如 $LiveCred = Get-Credential

UsersFile

必需

UsersFile 参数指定 CSV_Parser.ps1 脚本的名称和位置。 如果使用包含空格的值,请确保用双引号将整个值括起来。

EndRow

可选

EndRow 参数指定要处理的 CSV 文件的最后一个数据行。 默认值为 1000000。如果未指定值,则该脚本将处理 CSV 文件中的所有数据行,直至到达该文件末尾。 包含列定义的标题行不算在 CSV 文件的数据行计数中。

LogDirectory

可选

LogDirectory 参数指定由该脚本生成的日志文件的位置。 日志文件的名称为 CSV_Parser_<年月日_时间>.txt。此文件包含非常有用的故障排除信息。 如果没有为 LogDirectory 指定值,则该日志文件将存储在由 Windows 配置文件中的 %TEMP% 环境变量所指定的目录中。 默认情况下,该临时目录位于 C:\Users\<用户名>\AppData\Local\Temp 中。

如果指定其他日志目录,请确保指定的目录存在,并确保您具有在该目录中读取和创建文件所需的相应权限。

LogVerbose

可选

LogVerbose 参数启用详细调试日志记录以进行高级疑难解答。 如果指定 LogVerbose 参数,则启用详细调试日志记录。

RemoteURL

可选

RemoteURL 参数指定可将本地 Windows PowerShell 控制台连接到基于云的远程服务的 URL。 您不必使用此参数。 该脚本会自动连接到正确的数据中心。 此参数只接受值 https://ps.outlook.com/powershell/

StartRow

可选

StartRow 参数指定要处理的 CSV 文件的起始数据行。 默认值为 1。如果未指定值,则该脚本将从 CSV 文件中的第一个数据行开始处理。 包含列定义的标题行不算在 CSV 文件的数据行计数中。

ValidateAction

可选

ValidateAction 参数启用或禁用验证。 默认值为 $true,表示 CSV_Parser.ps1 脚本执行的所有操作都将被验证。 每个对象的验证需要几秒钟的时间。 如果您确定要通过 CSV_Parser.ps1 脚本执行的操作不需要验证,则可通过将该值设置为 $false 来禁用验证。

$WarningPreference

不适用

$WarningPreference 控制脚本的错误处理。 通过修改 CSV_Parser.ps1 脚本中的值来设置 $WarningPreference 的值。 可能的值包括 SlientlyContinueContinueInquireSuspendStop

  • SilentlyContinue   如果遇到错误,则该脚本继续执行并且不显示错误。
  • Continue   如果遇到错误,则显示错误并且该脚本继续执行。
  • Inquire   如果遇到错误,则该脚本将暂停并强制您选择是继续、暂停还是挂起该脚本。
  • Stop   如果遇到错误,则该脚本将停止。

默认值为 SilentlyContinue

页面顶部

如何使用 CSV_Parser.ps1 脚本?

以下示例说明如何使用包含以下详细信息的 CSV_Parser.ps1 脚本:

  • 指向 CSV_Parser.ps1 脚本的路径   C:\Tools\CSV_Parser.ps1
  • CSV 文件名和路径  C:\Data\Bulk Import.csv

使用 CSV_Parser.ps1 脚本导入在“C:\Data\Bulk Import.csv”文件中定义的用户

  1. 单击“开始”>“所有程序”>“附件”>“Windows PowerShell”>“Windows PowerShell”。

  2. 运行以下命令:

    $LiveCred = Get-Credential
    
  3. 在打开的“Windows PowerShell 凭据请求”窗口中,键入 Exchange Online 管理员帐户的 Windows Live ID 和密码。 完成后,请单击“确定”。

  4. 运行以下命令:

    C:\Tools\CSV_Parser.ps1 -LiveCredential $LiveCred -UsersFile "C:\Data\Bulk Import.csv"
    
  5. 根据在 CSV 文件中定义的用户和特性的数量,运行该脚本可能需要一段时间。 可能会显示各种消息和错误。 完成该脚本后,可以在名为 CSV_Parser_<年月日_时间>.txt 的日志文件中查看这些消息。 默认情况下,该日志文件位于 C:\Users\<用户名>\AppData\Local\Temp\ 中,但您可以使用 LogDirectory 参数指定该日志文件的位置。

页面顶部

对 CSV_Parser.ps1 脚本进行故障排除

如果您在运行该脚本时遇到困难,或该脚本没有产生预期结果,请尝试执行以下故障排除步骤:

  • 验证 CSV 文件的结构和内容是否正确。 为此,请参阅 CSV_Parser.ps1 脚本附带的 test.csv 文件。
    • 下列属性始终是必需的: ActionTypeName
    • EmailAddress 特性对 AddUpdate 操作是必需的。
    • Password 特性对于针对邮箱用户和邮件用户的 Add 操作是必需的。
  • 确保正在运行该脚本的最新版本。 该脚本具有自动版本检查功能,每当您运行该脚本时,此功能就会运行。 如果您使用的是该脚本的过时版本,则您将收到一条与以下内容类似的错误消息:
    错误 = 不再支持此脚本版本 <版本>。 请更新到最新版本。
  • 如果 CSV_Parser.ps1 脚本在连接到基于云的服务时遇到问题,可尝试手动连接而不使用该脚本。 有关如何将 Windows PowerShell 连接到基于云的服务的详细信息,请参阅将 Windows PowerShell 连接到服务
  • 检查日志文件。 默认情况下,日志文件位于 C:\Users\<用户名>\AppData\Local\Temp 中,但您可以使用 LogDirectory 参数更改该位置。 日志文件的名称是 CSV_Parser_<年月日_时间>.txt。

页面顶部

不支持的特性

CSV_Parser.ps1 脚本不支持以下特性:

  • ExtensionCustomAttribute1 – ExtensionCustomAttribute5

页面顶部