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

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

我们仍然在Windows Server 2003上运行我们的交换服务器,并且在我的电脑上安装了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

编辑:grr …我忘了Exchange 2003 …下面只适用于Exchange 2007及以上。

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

如何格式化csv文件和csvde命令的示例可以在这里find: http : //forums.msexchange.org/m_1800509533/printable.htm

引用:

对象类,DN,显示名,代理地址,的targetAddress,邮件,或mailNickname,给定名称,SN,showInAddressBook

objectClass =你正在创build的对象的类(在你的情况下是“contact”)DN =区分对象的名称displayName =显示对象的名称proxyAddresses = type:联系对象的代理地址(例如SMTP:user @ domain .com)targetAddress = type:联系人对象的目标地址(例如SMTP:[email protected])mail = Mail(您可以在联系人对象的常规选项卡中看到)mailNickname =别名联系人对象的名称givenName = First名称sn =姓氏showInAddressBook =用于在GAL中启用联系人(即使我们没有指定此值,联系人也会显示在默认的GAL中)

如果你想我会给你一个CSV样本文件。

您可能需要学习Excel提示和技巧,以从input详细信息创buildCSV文件。

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

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

-i =用于指定导入模式

-f =用于指定input文件

另一种替代方法是AD批量联系人等第三方实用程序: http : //www.dovestones.com/active-directory-contact-import/


好的,这就是我要做的(如果这是Exchange 2007+大声笑)

设置csv文件

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

  1. Name更改为DisplayName
  2. 将此DisplayName Column to a new column called复制DisplayName Column to a new column called TempName DisplayName Column to a new column called
  3. Email改为prefix
  4. 创build一个名为FirstName的新列
  5. 创build一个名为LastName的新列
  6. 创build一个名为Email的新列

获取FirstNameLastName列填充:

  1. 突出显示TempName所有数据,然后selectData然后selectText to Columns ,然后根据名字和姓氏的空格分割出来

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

获取Email列填充:

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

现在,您应该拥有具有DisplayNameFirstNameLastNameEmail行,这些行对单个用户具有有效的信息。 不要担心无关的列…我们不会在input中使用它们。

现在将文件保存为CSV文件,然后validationCSV文件是否准确input

在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 } 

至less应该指出你朝着你的方向。 如果你卡住了,让我知道。