使用 Powershell 从 .CSV 文件创建 Exchange 联系人

使用 Powershell 从 .CSV 文件创建 Exchange 联系人

我想做的是使用 Powershell 脚本从 .csv 文件在 Active Directory 中的某个文件夹中创建联系人。此脚本应允许我根据 .csv 文件中输入的信息创建电子邮件地址的第一部分。

我们仍在 Windows Server 2003 上运行我们的 Exchange 服务器,并且我的计算机上有 Powershell 3.0。

这是一个接近我想要但不完全是的脚本。

$csv = Import-Csv �C:\Contacts.csv� 
foreach($line in $csv) 
{ 
New-MailContact -Name $line.DisplayName -ExternalEmailAddress $line.EmailAddress -OrganizationalUnit �Contacts� -Alias $line.Alias 
} 

我对 Powershell 不是很有经验,如果有人能帮助我,我将非常感激。

编辑:

根据要求,这是我的 .csv 中的一行加上标题的示例

姓名,电子邮件

卡车 327,9426645555

答案1

编辑:哎呀...我忘了 Exchange 2003...下面的内容仅适用于 Exchange 2007 及更高版本。

对于 Exchange 2003,您需要使用 csvde:http://support.microsoft.com/kb/327620

有关如何格式化 csv 文件和 csvde 命令的示例可以在此处找到:http://forums.msexchange.org/m_1800509533/printable.htm

引用:

对象类、DN、显示名称、代理地址、目标地址、邮件、邮件昵称、给定名称、sn、showInAddressBook

objectClass = 您正在创建的对象类(在您的情况下为“联系人”) DN = 对象的区别名称 displayName = 对象的显示名称 proxyAddresses = 类型:联系人对象的代理地址(例如 SMTP:[电子邮件保护]) targetAddress = type:联系对象的目标地址(例如 SMTP:[电子邮件保护]) mail = 邮件(您可以在联系人对象的常规选项卡中看到) mailNickname = 联系人对象的别名 givenName = 名字 sn = 姓氏 showInAddressBook = 用于在 GAL 中启用联系人(即使我们没有指定此值,联系人也会显示在默认 GAL 中)

如果您愿意,我可以向您发送一个示例 CSV 文件。

您可能需要学习 Excel 技巧和窍门,才能从输入详细信息中创建 CSV 文件。

创建 CSV 文件后,您可以使用以下命令导入联系人对象。

CSVDE -i -f 例如:CSVDE -i -fc:\test.csv

-i = 指定导入模式

-f = 指定输入文件

另一种选择是使用第三方实用程序,例如 AD Bulk Contacts:http://www.dovestones.com/active-directory-contact-import/


好的,我会这样做(如果这是 Exchange 2007+ 哈哈)

csv 文件的设置

首先,在 Excel 中打开您的 CSV 文件。您需要使您的 CSV 文件更好地输入到 PS“脚本”中。

  1. 改成NameDisplayName
  2. 复制此DisplayName Column to a new column calledTempName`
  3. 改成Emailprefix
  4. 创建一个名为FirstName
  5. 创建一个名为LastName
  6. 创建一个名为Email

获取FirstNameLastName填充列:

  1. 突出显示所有数据,然后TempName选择并根据DataText to Columns空间名字和姓氏

  2. 现在将名字和姓氏复制到您在#4-5 中创建的各自新列中。

填充Email列:

  1. 在电子邮件列中,转到与第一行数据相邻的空单元格。也就是说,应该9426645555prefix同一行左侧的某列中,假设数据在 B3 中。在这里,您将创建一个公式来将电子邮件前缀与域连接起来。然后将=CONCATENATE(A2,"@domain.com")其复制并粘贴到列中以获取所有正确的电子邮件地址。

现在,您应该有包含DisplayNameFirstNameLastName和的行Email,这些行包含单个用户的有效信息。不要担心多余的列……我们不会在输入中使用它们。

现在将文件保存为 CSV 文件,然后验证 CSV 文件的输入是否准确

关于 Powershell 脚本:

$csv = Import-Csv C:\Contacts.csv 
foreach($line in $csv) 
{ 
New-MailContact -Name $line.DisplayName -FirstName $line.FirstName -LastName $line.LastName -ExternalEmailAddress $line.Email -OrganizationalUnit Contacts -Alias $line.Alias
} 

这至少应该能为你指明方向。如果你遇到困难,请告诉我。

相关内容