シェルの Prepare-MoveRequest.ps1 スクリプトを使用して、フォレスト間のメールボックスの移動を準備する

 

適用先: Exchange Server 2010 SP2, Exchange Server 2010 SP3

トピックの最終更新日: 2016-11-28

Microsoft Exchange Server 2010 は New-MoveRequest コマンドレットを使用したオンラインのメールボックスの移動をサポートしています。移動元の Exchange フォレストから移動先の Exchange 2010 フォレストにメールボックスを移動できます。

New-MoveRequest コマンドレットを実行するには、メール ユーザーが移動先 Exchange フォレストに存在し、最低限必要な Active Directory 属性の集合を持っている必要があります。

ここで説明するサンプルの Windows PowerShell スクリプトは、メールボックスのユーザーを Exchange 2010、Exchange Server 2007、または Exchange Server 2003 の移動元のフォレストから Exchange 2010 の移動先のフォレストにメールが有効なユーザーとして同期させることで、このタスクをサポートしています。スクリプトは移動元フォレストのメールボックス ユーザーの Active Directory 属性を移動先フォレストにコピーし、Update-Recipient コマンドレットを使用して、移動先のオブジェクトをメールが有効なユーザーに変換します。

スクリプトの使用と記述の詳細については、「 Exchange 管理シェルを使用したスクリプトの作成」を参照してください。フォレスト間の移動の準備については、「メールボックスのフォレスト間の移動要求を準備する」を参照してください。

リモート移動要求に関連する他の管理タスクについては、「リモート移動要求の管理」を参照してください。

前提条件

  • 次の場所でスクリプトを見つけます。Program Files\Microsoft\Exchange Server\V14\Scripts。

  • サンプル スクリプトの実行に必要なものを以下に示します。

    • 現在メールボックスが存在している Exchange 2010、Exchange 2007、または Exchange 2003 を実行している移動元のフォレスト。

    • メールボックスの移動先となる、Exchange 2010 がインストールされた移動先のフォレスト。

Prepare-MoveRequest.ps1 スクリプトを使用してメールボックスのフォレスト間の移動を準備する

移動先の Exchange 2010 フォレストにおいて、Exchange 2010 を実行しているサーバーの役割上でシェルからスクリプトを実行します。スクリプトによって移動元のフォレストからメールボックスの属性がコピーされます。

特定の認証資格情報をリモート フォレストのドメイン コントローラーに割り当てるには、まず Windows PowerShell Get-Credential コマンドレットを実行して、ユーザー入力を一時変数に保存します。Get-Credential コマンドレットを実行すると、リモート フォレストのドメイン コントローラーの電子メール サーバーの認証時に使用されるアカウントのユーザー名とパスワードの入力が求められます。Prepare-MoveRequest.ps1 スクリプトでは、テンポラリ変数を使用します。Get-Credential コマンドレットの詳細については、「Get-Credential」を参照してください。

注意

このスクリプトを呼び出すときは、ローカル フォレストとリモート フォレストに対して 2 つの別の資格情報を使用することを確認してください。

最初に、次のコマンドを実行して、ローカル フォレストとリモート フォレストの資格情報を取得します。

$LocalCredentials = Get-Credential
$RemoteCredentials = Get-Credential

次に、次のコマンドを実行して、資格情報を Prepare-MoveRequest.ps1 スクリプト内の LocalForestCredential パラメーターと RemoteForestCredential パラメーターに渡します。

Prepare-MoveRequest.ps1 -Identity JohnSmith@Fabrikan.com -RemoteForestDomainController DC001.Fabrikam.com -RemoteForestCredential $RemoteCredentials -LocalForestDomainController DC001.Contoso.com -LocalForestCredential $LocalCredentials

次の表は、スクリプトのパラメーター セットの説明です。

Prepare-MoveRequest.ps1 スクリプトのパラメーター セット

パラメーター 必須 説明

Identity

必要

Identity パラメーターは、移動元フォレストのメールボックスを一意に識別します。Identity には次のいずれかを指定できます。

  • 共通名 (CN)

  • Alias

  • proxyAddress プロパティ

  • objectGuid プロパティ

  • DisplayName プロパティ

RemoteForestCredential

必要

RemoteForestCredential パラメーターには、移動元フォレスト Active Directory からデータをコピーするアクセス許可を持つ管理者を指定します。

RemoteForestDomainController

必要

RemoteForestDomainController パラメーターには、メールボックスが存在する移動元フォレストのドメイン コントローラーを指定します。

DisableEmailAddressPolicy

省略可能

DisableEmailAddressPolicy パラメーターでは、移動先フォレストで MailUser オブジェクトを作成するときに電子メール アドレス ポリシー (EAP) を無効にするかどうかを指定します。

このパラメーターを指定すると、移動先フォレストの EAP は適用されません。

注意

このパラメーターを指定すると、MailUser オブジェクトはスタンプされたローカル フォレスト ドメインに電子メール アドレス マッピングを持ちません。これは通常 EAP によってスタンプされます。

LinkedMailUser

省略可能

LinkedMailUser スイッチには、リモート フォレストのメールボックス ユーザー用に、リンクした MailUser を ローカル フォレストに作成するかどうかを指定します。

スイッチが入力されると、スクリプトは移動元のメールボックスにリンクした移動先の MailUser オブジェクトを作成します。スイッチが省略されると、スクリプトは通常の移動先の MailUser オブジェクトを作成します。詳細については、「リンクされたメールボックスを作成する」を参照してください。

LocalForestCredential

省略可能

LocalForestCredential パラメーターには、移動先フォレスト Active Directory に対して書き込みのアクセス許可を持つ管理者を指定します。

Active Directory のアクセス許可の問題を回避するために、このパラメーターを明示的に指定することをお勧めします。

リモート フォレストとローカル フォレストに信頼関係が構成されている場合、リモート ユーザー アカウントがローカル フォレストの Active Directory を変更するアクセス許可を有している場合であっても、リモート フォレストのユーザー アカウントをローカル フォレストの資格情報として使用しないでください。

LocalForestDomainController

省略可能

LocalForestDomainController パラメーターには、メールが有効なユーザーを作成する、移動先フォレストのドメイン コントローラーを指定します。

ランダム ドメイン コントローラーが選択された場合に起こりうる、ローカル フォレストのドメイン コントローラーの複製遅延の問題を回避するために、このパラメーターを指定することをお勧めします。

MailboxDeliveryDomain

省略可能

MailboxDeliveryDomain パラメーターには、移動元のフォレストの権限を持つドメインを指定して、スクリプトが移動元のメールボックス ユーザーの proxyAddress プロパティを、移動先のメールが有効なユーザーの targetAddress プロパティとして正しく選択できるようにします。

既定では、移動元メールボックス ユーザーのプライマリ SMTP アドレスは、移動先のメールが有効なユーザーの targetAddress プロパティとして設定されます。

OverWriteLocalObject

省略可能

OverWriteLocalObject パラメーターは、Active Directory 移行ツールで作成されたユーザー用に使用します。プロパティは、既存のメール連絡先から新たに作成されたメール ユーザーにコピーされます。ただし、このコピーの後、スクリプトによって、移動元フォレスト ユーザーからも新たに作成されたメール ユーザーにプロパティがコピーされます。

TargetMailUserOU

省略可能

TargetMailuserOU パラメーターには、移動先のメールが有効なユーザーの作成先の組織単位 (OU) を指定します。

UseLocalObject

省略可能

UseLocalObject パラメーターには、作成予定のメールが有効なユーザーと競合するローカル フォレストのオブジェクトが検出された場合に、既存のローカル オブジェクトを要求された移動先のメールが有効なユーザーに変換するかどうかを指定します。

このセクションには、Prepare-MoveRequest.ps1 スクリプトの使用方法の例がいくつかの含まれています。

例 1

この例では、リモート フォレストとローカル フォレストの間に信頼関係がある場合に、単一のリンクしたメールが有効なユーザーをローカル フォレストに準備します。

最初に、次のコマンドを実行して、ローカル フォレストとリモート フォレストの資格情報を取得します。

$LocalCredentials = Get-Credential
$RemoteCredentials = Get-Credential

次に、次のコマンドを実行して、資格情報を Prepare-MoveRequest.ps1 スクリプト内の LocalForestCredential パラメーターと RemoteForestCredential パラメーターに渡します。

Prepare-MoveRequest.ps1 -Identity JamesAlvord@Contoso.com -RemoteForestDomainController DC001.Fabrikam.com -RemoteForestCredential $RemoteCredentials -LocalForestDomainController DC001.Contoso.com -LocalForestCredential $LocalCredentials -LinkedMailUser 

例 2

メールボックスの ID の一覧を指定すると、この例はパイプライン処理をサポートします。

最初に、次のコマンドを実行します。

$UserCredentials = Get-Credential

次に、次のコマンドを実行して、資格情報を Prepare-MoveRequest.ps1 スクリプト内の RemoteForestCredential パラメーターに渡します。

"IanP@Contoso.com", "JoeAn@Contoso.com" | Prepare-MoveRequest.ps1 -RemoteForestDomainController DC001.Fabrikam.com -RemoteForestCredential $UserCredentials

例 3

メールボックス ID の一覧を含む CSV ファイルを移動元のフォレストから生成できます。それにより、このファイルの内容をスクリプトに入力して、移動先のメールが有効なユーザーを一括作成します。

たとえば、CSV ファイルの内容は次のとおりです。

Identity

Ian@contoso.com

John@contoso.com

Cindy@contoso.com

この例では、CSV ファイルを呼び出して移動先のメールが有効なユーザーを一括作成します。

最初に、次のコマンドを実行して、リモート フォレストの資格情報を取得します。

$UserCredentials = Get-Credential

次に、次のコマンドを実行して、資格情報を Prepare-MoveRequest.ps1 スクリプト内の RemoteForestCredential パラメーターに渡します。

Import-Csv Test.csv | Prepare-MoveRequest.ps1 -RemoteForestDomainController DC001.Fabrikam.com -RemoteForestCredential $UserCredentials

移動先のオブジェクトごとのスクリプトの動作

ここでは、次の移動先オブジェクトのシナリオに関連したスクリプトの実行方法について説明します。

  • 移動先のメールが有効なオブジェクトの重複

  • メールが有効なユーザー

  • メールが有効な連絡先

  • LegacyExchangeDN 属性

移動先のメールが有効なオブジェクトの重複

スクリプトが移動元のメールボックス ユーザーから移動先のメールが有効なユーザーを作成しようとして、ローカルのメールが有効なオブジェクトの重複を検出すると、以下のロジックを使用します。

  • 移動元のメールボックス ユーザーの masterAccountSid 属性が、移動先のオブジェクトのいずれかの objectSid 属性または masterAccountSid 属性に等しい場合。

    • 移動先のオブジェクトがメールが有効でない場合、スクリプトはメールが有効でないオブジェクトからメールが有効なユーザーへの変換をサポートしていないため、エラーを返します。

    • 移動先のオブジェクトがメールが有効な場合、移動先のオブジェクトは重複しています。

  • 移動元のメールボックス ユーザーの proxyAddress プロパティ (smtp/x500 のみ) が移動先のオブジェクトの proxyAddress プロパティ (smtp/x500 のみ) に等しい場合、移動先のオブジェクトは重複しています。

スクリプトは重複するオブジェクトについてユーザーに入力を求めます。

移動先のメールが有効なオブジェクトが、メールが有効なユーザーまたは連絡先の場合、フォレストにまたがる (Identity Lifecycle Management 2007 Service Pack 1 ベースの) グローバル アドレス一覧 (GAL) 同期展開によって作成された可能性が高いです。そして、ユーザーは移動先のメールが有効なオブジェクトをメールボックスの移行に使用するために、UseLocalObject パラメーターを指定してスクリプトを再度実行します。

メールが有効なユーザー

移動先のオブジェクトがメールが有効なユーザーで、スクリプトによって移動元のメールボックス ユーザーから移動先のメールが有効なユーザーに以下の属性がコピーされます。

  • msExchMailboxGUID

  • msExchArchiveGUID

  • msExchArchiveName

LinkedMailUser パラメーターを設定すると、スクリプトは移動元の objectSid/masterAccountSid 属性をコピーします。

メールが有効な連絡先

移動先のオブジェクトがメールが有効な連絡先の場合、スクリプトは既存の連絡先を削除して、そのすべての属性を新しいメールが有効なユーザーにコピーします。またスクリプトは次の属性を移動元のメールボックス ユーザーからコピーします。

  • msExchMailboxGUID

  • msExchArchiveGUID

  • msExchArchiveName

  • sAMAccountName

  • userAccountControl (514 に設定 //0x202 に相当、ACCOUNTDISABLE | NORMAL_ACCOUNT)

  • userPrincipalName

LinkedMailUser パラメーターを設定すると、スクリプトは移動元の objectSid/masterAccountSid 属性をコピーします。

LegacyExchangeDN 属性

移動先のオブジェクトをメールが有効なユーザーに変換するために Update-Recipient コマンドレットが呼ばれると、移動先のメールが有効なユーザーのために新しい LegacyExchangeDN 属性が生成されます。スクリプトは、移動先のメールが有効なユーザーの LegacyExchangeDN 属性を x500 アドレスとして、移動元のメールボックス ユーザーの proxyAddress プロパティにコピーします。この操作により、移動元と移動先のフォレスト間でメッセージが送信されたときに、受信者が正しく解決されます。

 © 2010 Microsoft Corporation.All rights reserved.