Exchange 管理シェルを使用してフォレスト間移動用のメールボックスを準備する

Exchange Serverは、Exchange 管理シェル New-MoveRequest コマンドレットと New-MigrationBatch コマンドレットを使用したメールボックスの移動と移行をサポートします。 Exchange 管理センター (EAC) でメールボックスを移動することもできます。

  • Exchange 2016 では、Exchange 2010、Exchange 2013、または Exchange 2016 メールボックスをソース Exchange フォレストからターゲット Exchange 2016 フォレストに移動できます。

  • Exchange 2019 では、Exchange 2013、Exchange 2016、または Exchange 2019 メールボックスをソース Exchange フォレストからターゲット Exchange 2019 フォレストに移動できます。

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

このトピックで説明するサンプル Exchange PowerShell スクリプトでは、メールボックス ユーザーを Exchange ソース フォレストから Exchange ターゲット フォレストにメール ユーザー (メールが有効なユーザーとも呼ばれます) として同期することで、このタスクをサポートしています。 スクリプトは、ソース フォレスト内のメールボックス ユーザーの Active Directory 属性をターゲット フォレストにコピーし、 Update-Recipient コマンドレットを使用してターゲット オブジェクトをメール ユーザーに変換します。

スクリプトの使用と記述の詳細については、「スクリプト について」を参照してください。 フォレスト間の移動の準備については、「メールボックスでフォレスト間の移動要求の準備を行う」を参照してください。

リモート移動要求に関連するその他の管理タスクをお探しですか? 「Exchange Serverでオンプレミスメールボックスの移動を管理する」を確認してください

はじめに把握しておくべき情報

  • %ExchangeInstallPath%Scripts で Prepare-MoveRequest.ps1 スクリプトを見つけます。 既定では、%ExchangeInstallPath% は C:\Program Files\Microsoft\Exchange Server\V15\ です (末尾の '\' に注意してください)。

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

    • Exchange ソース フォレスト (現在メールボックスが存在する場所)。

      • Exchange 2016 ターゲット フォレストの場合、ソース メールボックスは Exchange 2010、Exchange 2013、または Exchange 2016 にあります。

      • Exchange 2019 ターゲット フォレストの場合、ソース メールボックスは Exchange 2013、Exchange 2016、または Exchange 2019 にあります。

    • Exchange 2016 または Exchange 2019 がインストールされているターゲット フォレスト (メールボックスの移動先)。

ヒント

問題がある場合は、 Exchange Server、Exchange Online、Exchange Online Protection。 必要な作業 シェルを使用して送信者フィルターを有効または無効にする

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

ターゲット Exchange 2016 または Exchange 2019 フォレスト内のメールボックス サーバー上の Exchange 管理シェルからスクリプトを実行します。 スクリプトによって移動元のフォレストからメールボックスの属性がコピーされます。

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

注:

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

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

    $LocalCredentials = Get-Credential
    
    $RemoteCredentials = Get-Credential
    
  2. 以下のコマンドを実行して、Prepare-MoveRequest.ps1 スクリプトの LocalForestCredential パラメーターと RemoteForestCredential パラメーターに資格情報を渡します。

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

スクリプトのパラメーター セット

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

パラメーター 必須 説明
ID 必須 Identity パラメーターは、ソース フォレスト内のメールボックスを一意に識別します。 ID には、共通名 (CN)、エイリアス、 proxyAddress プロパティ、 objectGuid プロパティ、または DisplayName プロパティのいずれかの値を指定できます。
RemoteForestCredential 必須 RemoteForestCredential パラメーターは、ソース フォレスト Active Directory からデータをコピーするアクセス許可を持つ管理者を指定します。
RemoteForestDomainController 必須 RemoteForestDomainController パラメーターは、メールボックスが存在するソース フォレスト内のドメイン コントローラーを指定します。
DisableEmailAddressPolicy 省略可能 DisableEmailAddressPolicy パラメーターは、ターゲット フォレストで MailUser オブジェクトを作成するときに、Email アドレス ポリシー (EAP) を無効にするかどうかを指定します。
このパラメーターを指定すると、移動先フォレストの EAP は適用されません。
: このパラメーターを指定すると、 MailUser オブジェクトには、ローカル フォレスト ドメインに電子メール アドレス マッピングがスタンプされません。 これは通常 EAP によってスタンプされます。
LinkedMailUser 省略可能 LinkedMailUser スイッチは、リモート フォレスト内のメールボックス ユーザーのローカル フォレストにリンクされた MailUser を作成するかどうかを指定します。
スイッチが入力されると、スクリプトは移動元のメールボックスにリンクした移動先の MailUser オブジェクトを作成します。 スイッチが省略されると、スクリプトは通常の移動先の MailUser オブジェクトを作成します。
LocalForestCredential 省略可能 LocalForestCredential パラメーターは、ターゲット フォレスト Active Directory にデータを書き込むアクセス許可を持つ管理者を指定します。
Active Directory のアクセス許可の問題を回避するために、このパラメーターを明示的に指定することをお勧めします。
リモート フォレストとローカル フォレストに信頼関係が構成されている場合、リモート ユーザー アカウントがローカル フォレストの Active Directory を変更するアクセス許可を有している場合であっても、リモート フォレストのユーザー アカウントをローカル フォレストの資格情報として使用しないでください。
LocalForestDomainController 省略可能 LocalForestDomainController パラメーターは、メール ユーザーが作成されるターゲット フォレスト内のドメイン コントローラーを指定します。
ランダム ドメイン コントローラーが選択された場合に起こりうる、ローカル フォレストのドメイン コントローラーの複製遅延の問題を回避するために、このパラメーターを指定することをお勧めします。
MailboxDeliveryDomain 省略可能 MailboxDeliveryDomain パラメーターは、ソース フォレストの権限のあるドメインを指定して、スクリプトがターゲット メール ユーザーの targetAddress プロパティとして正しいソース メールボックス ユーザーの proxyAddress プロパティを選択できるようにします。
既定では、ソース メールボックス ユーザーのプライマリ SMTP アドレスは、ターゲット メール ユーザーの targetAddress プロパティとして設定されます。
OverWriteLocalObject 省略可能 OverWriteLocalObject パラメーターは、Active Directory 移行ツールによって作成されたユーザーに使用されます。 プロパティは、既存のメール連絡先から新たに作成されたメール ユーザーにコピーされます。 ただし、このコピーの後、スクリプトによって、移動元フォレスト ユーザーからも新たに作成されたメール ユーザーにプロパティがコピーされます。
TargetMailUserOU 省略可能 TargetMailuserOU パラメーターは、ターゲット メール ユーザーを作成する組織単位 (OU) を指定します。
UseLocalObject 省略可能 UseLocalObject パラメーターは、作成するメール ユーザーと競合するローカル フォレスト内のオブジェクトがスクリプトによって検出された場合に、既存のローカル オブジェクトを必要なターゲット メール ユーザーに変換するかどうかを指定します。

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

例: 単一のリンクされたメール ユーザー

次の使用例は、リモート フォレストとローカル フォレストの間にフォレストの信頼がある場合に、ローカル フォレストに 1 人のリンクされたメール ユーザーをプロビジョニングします。

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

    $LocalCredentials = Get-Credential
    
    $RemoteCredentials = Get-Credential
    
  2. 次のコマンドを実行して、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
    

例: パイプライン処理

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

  1. 次のコマンドを実行します。

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

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

例: .csv ファイルを使用してメール ユーザーを一括作成する

ソース フォレストからメールボックス ID の一覧を含む .csv ファイルを生成できます。これにより、このファイルの内容をスクリプトにパイプして、ターゲット メール ユーザーを一括作成できます。

たとえば, .csv ファイルの内容は次のようになります。

Identity
Ian@contoso.com
John@contoso.com
Cindy@contoso.com

この例では、.csv ファイルを呼び出して、ターゲット メール ユーザーを一括作成します。

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

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

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

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

ここでは、移動先オブジェクトのいくつかのシナリオに関連してスクリプトがどのように動作するかを説明します。

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

スクリプトは、ソース メールボックス ユーザーからターゲット メール ユーザーを作成しようとしたときに、重複するローカル メールが有効なオブジェクトを検出すると、次のロジックを使用します。

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

    • ターゲット オブジェクトがメール対応でない場合、スクリプトはメールが有効になっていないオブジェクトのメール ユーザーへの変換をサポートしていないため、エラーを返します。

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

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

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

対象のメールが有効なオブジェクトがメール ユーザーまたはメール連絡先である場合は、フォレスト間グローバル アドレス一覧 (GAL) 同期展開によって作成される可能性が最も高い場合は、 UseLocalObject パラメーターを使用してスクリプトを再実行して、メールボックスの移行にターゲット メールが有効なオブジェクトを使用できます。

メール ユーザー

ターゲット オブジェクトがメール ユーザーの場合、スクリプトはソース メールボックス ユーザーからターゲット メール ユーザーに次の属性をコピーします。

  • msExchMailboxGUID

  • msExchArchiveGUID

  • msExchArchiveName

LinkedMailUser パラメーターが設定されている場合、スクリプトはソース オブジェクトSid / masterAccountSid 属性をコピーします。

メール連絡先

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

  • msExchMailboxGUID

  • msExchArchiveGUID

  • msExchArchiveName

  • sAMAccountName

  • userAccountControl (514 に設定され、 と同等 0x202, ACCOUNTDISABLE | NORMAL_ACCOUNT)

  • userPrincipalName

LinkedMailUser パラメーターが設定されている場合、スクリプトはソース オブジェクトSid / masterAccountSid 属性をコピーします。

LegacyExchangeDN 属性

Update-Recipient コマンドレットを呼び出してターゲット オブジェクトをメール ユーザーに変換すると、ターゲット メール ユーザーに対して新しい LegacyExchangeDN 属性が生成されます。 このスクリプトは、ターゲット メール ユーザーの LegacyExchangeDN 属性を x500 アドレスとしてソース メールボックス ユーザーの proxyAddress プロパティにコピーします。