Windows-Server-2003

使用 Powershell 從 .CSV 文件創建 Exchange 聯繫人

  • August 28, 2013

我想做的是使用 Powershell 腳本從 .csv 文件在 Active Directory 中的某個文件夾中創建聯繫人。該腳本應允許我根據在 .csv 文件中輸入的資訊創建電子郵件地址的第一部分。

我們仍在 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 命令的範例:http ://forums.msexchange.org/m_1800509533/printable.htm

引用:

objectClass,DN,displayName,proxyAddresses,targetAddress,mail,mailNickname,givenName,sn,showInAddressBook

objectClass = 您正在創建的對象的類(在您的情況下為“聯繫人”) DN = 對象的可分辨名稱 displayName = 對象的顯示名稱 proxyAddresses = 類型:聯繫人對象的代理地址(例如 SMTP:user@domain .com) targetAddress = 類型:聯繫人對象的目標地址(例如 SMTP:user@domain.com) mail = 郵件(您可以在聯繫人對象的一般選項卡中看到) mailNickname = 聯繫人對象的別名 givenName = First Name sn = Last Name 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選擇並根據空格拆分名字和姓氏Data``Text to Columns
  2. 現在將名字和姓氏複製到您在#4-5 中創建的各自的新列中。

填充Email列:

  1. 在電子郵件列中,轉到與第一行數據相鄰的空單元格。即,在同一行左側某處9426645555的列中應該有,例如,數據在 B3 中。prefix在這裡,您將創建一個公式以將電子郵件前綴與域連接起來。然後=CONCATENATE(A2,"@domain.com")將其複制並粘貼到列中以使所有電子郵件地址正確無誤。

現在,您應該擁有具有DisplayName, FirstName, LastName, 並且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
} 

那至少應該為您指明到達那裡的方向。如果你卡住了,請告訴我。

引用自:https://serverfault.com/questions/534576