如何匯入地址修正項目

 

適用版本: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007

上次修改主題的時間: 2007-02-19

本主題說明如何使用 Exchange 管理命令介面,在已安裝 Microsoft Exchange Server 2007 Edge Transport server role 的電腦上匯入地址修正項目。

您可以使用 Exchange 管理命令介面,在 Edge Transport Server 上執行大量匯入地址修正項目。以下是您想要執行大量匯入地址修正項目的一些常見案例:

  • 遷移   您可以從先前的解決方案中大量匯入地址修正項目,該解決方案由 Edge Transport Server 解決方案所取代。
  • 委外   當您與協力廠商解決方案提供者達成協議,必須修正其電子郵件地址時,您可能必須大量匯入地址修正項目。
  • 收購   當收購其他組織而需要在過渡時期修正所收購組織的電子郵件地址時,您可能必須大量匯入地址修正項目。

如果您有多個 Edge Transport Server,我們建議您使用下列程序,將地址修正項目匯入至單一 Edge Transport Server,然後將該 Edge Transport Server 的組態複製到組織中的其他 Edge Transport Server。

如需如何複製 Edge Transport Server 的相關資訊,請參閱使用 Edge Transport Server 複製的組態

開始之前

若要在已安裝 Edge Transport server role 的電腦上執行下列程序,則必須使用該電腦之本機 Administrators 群組成員的帳戶進行登入。

在您嘗試使用逗點分隔值 (CSV) 檔案來執行大量匯入地址修正項目之前,您必須熟悉如何建立地址修正項目。如需如何建立地址修正項目的相關資訊,請參閱如何建立新地址修正項目

程序

下列各節將協助您了解如何使用 CSV 檔匯入地址修正項目:

  • 建立 CSV 檔   本節說明可用來匯入地址修正項目的 CSV 檔的必要欄位和選用欄位。本節亦說明您在 CSV 檔中使用 ExceptionListOutboundOnly 參數時的特定需求。
  • 了解 CSV 檔如何與 New-AddressRewriteEntry 指令程式搭配使用   本節說明 Exchange 管理命令介面如何設定格式,及使用 CSV 檔包含的資料來匯入地址修正項目。
  • 匯入 CSV 檔以建立多個地址修正項目   本節是以前幾節的資訊為基礎而建立,並說明如何使用所需的 Exchange 管理命令介面命令來匯入 CSV 檔,並利用此檔建立多個地址修正項目。

建立 CSV 檔

首先,您必須建立包含值欄位的 CSV 檔,這些值與 New-AddressRewriteEntry 指令程式所需的參數相關。下列各值是 New-AddressRewriteEntry 指令程式所需要的,因此在 CSV 檔中必須有對應的欄位:

  • Name   此參數必須是唯一識別地址修正項目的字串。
  • InternalEmailAddress   此參數指定要修正的內部簡易郵件傳送通訊協定 (SMTP) 位址。
  • ExternalEmailAddress   此參數指定要修正的外部 SMTP 位址。

下列參數是選用的。如果您需要它們,可以在 CSV 檔中包括它們的欄位:

  • ExceptionList   此參數指定不應修正的子網域清單。指定的子網域內所包含的 SMTP 位址都不會重寫。
  • OutboundOnly   此參數指定地址修正項目是否應該在 Exchange 2007 組織的輸入和輸出郵件上重寫 SMTP 位址,或是只重寫從 Exchange 2007 組織輸出的那些郵件。

如果您在 CSV 檔中指定 ExceptionListOutboundOnly 欄位的值,則每一列都必須包含該欄位的值。例如,如果您在 CSV 檔的任何一列指定 ExceptionList 欄位的值,則 CSV 檔的所有其他列也必須包含該欄位的值。這是因為命令列上的 ExceptionList 參數預期有來自 CSV 檔的值。

如需這些清單中每一個參數的相關資訊,請參閱 New-AddressRewriteEntry

當您在 CSV 檔中包括 ExceptionList 參數時的特定需求

如果您想要建立多個地址修正項目,其中有些項目需要 ExceptionList 參數的值,有些項目不需要,則您必須分隔那些地址修正項目,並建立個別 CSV 檔,然後匯入每一個 CSV 檔。此外,您也必須用雙引號 (") 括住 ExceptionList 參數使用的值。如果您想要指定含有 ExceptionList 參數的多個網域,您必須使用逗點 (,) 分隔每一個值。例如,"domain1.com,domain2.com, domain3.com" 字串包含三個用雙引號括住並以逗點分隔的網域。

當您在 CSV 檔中包括 OutboundOnly 參數時的特定需求

如果您在 CSV 檔的某一列的 OutboundOnly 欄位中指定值,您必須在 CSV 檔中其他每一列的 OutboundOnly 欄位指定值,就像 ExceptionList 參數一樣。不過,您可以在每一列指定 OutboundOnly 參數為 TrueFalse,如此即可輕易應付此需求。

與 Exchange 管理命令介面其他地方的布林值用法不同,當您在 CSV 檔中指定 OutboundOnly 參數的值時,您必須指定 TrueFalse 值,而不是 $True$False。這是因為在命令列解譯 CSV 檔時,CSV 檔中的值是以手動方式轉換成布林值。

如需何時必須使用 OutboundOnly 參數及如何使用 OutboundOnly 參數的相關資訊,請參閱規劃地址修正中的<使用僅輸出地址修正的注意事項>一節。

有填入選用參數的 CSV 檔範例

下列範例顯示如何在填入 CSV 檔時同時包含選用的 ExceptionListOutboundOnly 參數:

Name,InternalAddress,ExternalAddress,ExceptionList,OutboundOnly
"Wingtip UK", *.wingtiptoys.co.uk, tailspintoys.com,"legal.wingtiptoys.co.uk,finance.wingtiptoys.co.uk,support.wingtiptoys.co.uk",True
"Wingtip USA", *.wingtiptoys.com, tailspintoys.com,"legal.wingtiptoys.com,finance.wingtiptoys.com,support.wingtiptoys.com,corp.wingtiptoys.com",True
"Wingtip Canada", *.wingtiptoys.ca, tailspintoys.com,"legal.wingtiptoys.ca,finance.wingtiptoys.ca,support.wingtiptoys.ca",True

下列範例顯示如何在填入 CSV 檔時同時包含選用的 OutboundOnly 參數:

Name,InternalAddress,ExternalAddress,OutboundOnly
"Contoso Sales",*.sales.contoso.com,contoso.com,True
"Contoso Research",*.research.contoso.com,contoso.com,True
"Contoso UK",*.contoso.co.uk,contoso.com,True
"Contoso Japan",*.contoso.co.jp,contoso.com,True
"Contoso Support",support@adatum.com,support@contoso.com,False
"Contoso Financial External",contosofinancial@woodgrovebank.com,financialinqueries@contoso.com,False

了解 CSV 檔如何與 New-AddressRewriteEntry 指令程式搭配使用

若要使用 CSV 檔匯入地址修正項目,您必須使用 Import-Csv 指令程式。Import-Csv 指令程式會讀取 CSV 檔,並以陣列元素輸出 CSV 檔的每一列,並以該陣列元素的內容輸出該列的每一個欄位。您可以使用本主題稍早的<有填入選用參數的 CSV 檔範例>中的 CSV 檔,以了解這是如何運作的。將該範例中的文字複製到一個叫做 example.csv 的檔案之後,使用下列命令來匯入範例 CSV 檔:

$CsvContents = Import-Csv c:\example.csv

然後,在命令列輸入下列命令:

$CsvContents

會傳回下列資料:

Name                InternalAddress     ExternalAddress     OutboundOnly
----                ---------------     ---------------     ------------
Contoso Sales       *.sales.contoso.com contoso.com         True
Contoso Research    *.research.conto... contoso.com         True
Contoso UK          *.contoso.co.uk     contoso.com         True
Contoso Japan       *.contoso.co.jp     contoso.com         True
Contoso Support     support@adatum.com  support@contoso.com False
Contoso Financia... contosofinancial... financialinqueri... False

如果您只想要檢視第三列的 InternalAddress 欄位所包含的值,可使用下列命令:

$CsvContents[2].InternalAddress

這樣會傳回 *.contoso.co.uk 值。

note附註:
陣列一律從 0 開始。因此,若要從第三列擷取值,您必須指定陣列元素 2。如需陣列的相關資訊,請參閱陣列

了解這個範例之後,您就可以更容易了解 Exchange 管理命令介面如何處理 CSV 檔,及利用它傳遞資料至 New-AddressRewriteEntry 指令程式。

誠如您在這個範例中所看到的,CSV 檔的每一列會變成陣列元素,而每一個欄位會變成該陣列元素的內容。使用 ForEach 指令程式時,Exchange 管理命令介面可自動從頭到尾移動陣列,並在遇到每一個陣列元素 (在此案例中,是指 CSV 檔的一列) 時執行動作。當陣列元素傳遞至管線中的 ForEach 指令程式之後,Exchange 管理命令介面就可以存取其中所儲存的內容。在此案例中,內容就是每一列包含的欄位。

然後您可以使用這些內容來建構要建立地址修正項目所需的 New-AddressRewiteEntry 命令。內容是使用 CSV 檔的欄位標題加以命名。它們不一定要符合指令程式上的參數名稱。下列命令是以這個範例的說明來建構的:

Import-Csv c:\example.csv | ForEach { New-AddressRewriteEntry -Name $_.Name -InternalAddress $_.InternalAddress -ExternalAddress $_.ExternalAddress -OutboundOnly ([Bool]::Parse($_.OutboundOnly)) -ExceptionList ($_.ExceptionList.Split(","))}
note附註:
您不必把匯入的 CSV 檔指派給變數,如本節開頭的範例所示。您可以只併入 Import-Csv 指令程式,然後將該指令程式的輸出 pipe 到 ForEach 指令程式,如本範例所示。

此命令會重複執行 example.csv 檔的每一列,然後使用 New-AddressRewriteEntry 指令程式,利用從每一列的欄位取得的參數值來建立地址修正項目。

您可能注意到此命令中的 $_ 特殊變數。$_ 特殊變數指示該命令檢查管線中的目前物件。在此案例中,就是指 CSV 檔的目前列。

OutboundOnlyExceptionList 內容在其個別內容周圍還有其他文字。([Bool]::Parse($_.OutboundOnly)) 文字指示 Exchange 管理命令介面以布林值解譯 OutboundOnly 內容所包含的字串。($_.ExceptionList.Split(",")) 文字指示 Exchange 管理命令介面使用逗點分隔 ExceptionList 內容所包含的多個值。若 ExceptionList 內容周圍沒有文字,則 ExceptionList 內容所包含的值將視同單一字串,即使有出現逗點也一樣。

如需管線的相關資訊,請參閱管線

匯入 CSV 檔以建立多個地址修正項目

既然您已了解幕後作業是如何進行的,您就可以建立 CSV 檔,並使用它來建立多個地址修正項目。建立至少含有 NameInternalAddressExternalAddress 欄位的 CSV 檔。如果您想要指定 ExternalAddressOutboundOnly 參數的值,請同時加上那些欄位。記住,每一列的每一個欄位必須含有一值。如需適當格式化的 CSV 檔範例,請參閱本主題稍早的<有填入選用參數的 CSV 檔範例>中的範例。

使用下列命令語法,利用 CSV 檔來建立多個地址修正項目:

Import-Csv <CSV file path> | ForEach { New-AddressRewriteEntry -Name $_.<Name CSV column heading> -InternalAddress $_.<InternalAddress CSV column heading> -ExternalAddress $_.<ExternalAddress CSV column heading> -OutboundOnly ([Bool]::Parse($_.<OutboundOnly CSV column heading>)) -ExceptionList ($_.<ExceptionList CSV column heading>.Split(","))}

在 Exchange 管理命令介面中使用 CSV 檔建立多個地址修正項目

  1. 建立及填入一個叫做 C:\ImportAddressRewriteEntries.csv 的 CSV 檔

  2. 執行下列命令:

    Import-Csv c:\ImportAddressRewriteEntries.csv | ForEach { New-AddressRewriteEntry -Name $_.Name -InternalAddress $_.InternalAddress -ExternalAddress $_.ExternalAddress -OutboundOnly ([Bool]::Parse($_.OutboundOnly)) -ExceptionList ($_.ExceptionList.Split(","))}
    

如需詳細語法及參數的資訊,請參閱 New-AddressRewriteEntry

若要確保您目前閱讀的是最新資訊,並尋找其他的 Exchange Server 2007 說明文件,請造訪 Exchange Server 技術資源中心.