次の方法で共有


PowerShell を使用してメールボックスを移動する

PowerShell を使用すると、Exchange 管理 センター (EAC) に加えてメールボックスを移動できます。

オンプレミスのメールボックスをExchange Online organizationに移動する

PowerShell を使用してオンプレミスのメールボックスをExchange Onlineに移動するには、次の手順を実行します。

  1. Exchange Online PowerShell に接続する: 管理者として PowerShell を起動し、次のコマンドを実行して PowerShell Exchange Online接続します。

    PS C:\> Connect-ExchangeOnline
    
  2. 移行エンドポイントのリモート サーバー URL の検索: Get-MigrationEndpoint コマンドレットを使用してリモート サーバー URL を取得します。

    Get-MigrationEndpoint | Format-List Identity, RemoteServer
    

    次の出力が表示されます。

    PS C:\> Get-MigrationEndpoint | Format-List Identity, RemoteServer
    
    Identity     : Hybrid Migration Endpoint - EWS (Default Web Site)
    RemoteServer : <GUID>.resource.mailboxmigration.his.msappproxy.net
    

    注:

    前のコマンド構文出力の RemoteServer 値は、 ハイブリッド構成ウィザード (HCW) を実行して生成されます。

  3. 次のパートで必要に応じて RemoteServer 値をコピーします。

    注:

    前の出力コマンド構文に表示されている RemoteServer の値は、ユーザーが [ハイブリッド トポロジ] ページで [Exchange Modern Hybrid Topology を使用する] を選択したときに生成されます。

  4. PowerShell を使用してプライマリ メールボックスとアーカイブ メールボックスをExchange Onlineに移動する新しい移動要求を作成する

    • 次の詳細を入力して、プライマリ メールボックスとアーカイブ メールボックスをExchange Onlineに移動する新しい移動要求を作成します。

      • ID: メールボックス名または電子メール アドレス。
      • RemoteHostName: 手順 2 でコピーしたリモート サーバー。
      • TargetDeliveryDomain: Exchange Online organization メールボックスに使用されるプライマリ SMTP ドメイン。
      • RemoteCredential: 特権を持つオンプレミス管理者アカウント。

      コマンドを実行すると、資格情報サインイン要求が表示されます。

      New-MoveRequest -Identity "Maisha.Lee@contoso.com" -Remote -RemoteHostName "mail.contoso.com" -TargetDeliveryDomain "<domain>.mail.onmicrosoft.com" -RemoteCredential (Get-Credential)
      
    • オンプレミスの資格情報 (RemoteCredential) のパスワードを入力します。

  5. PowerShell を使用して複数のメールボックスをExchange Onlineに移動する

    • Users.csvという名前の CSV ファイル 作成し、 ディレクトリ C:\migration に配置します。

    • CSV ファイルを開き、ヘッダー列に EmailAddress という名前を付け、Exchange Onlineに移動するすべてのメールボックスを入力します。

      移動するメールボックスの詳細が入力される CSV を示すスクリーンショット。

    • 次のスクリプトをコピーし、最初の 3 行を変更します。 その後、スクリプトを実行します。

      $Mailboxes = Import-Csv "C:\Migration\Users.csv"
      $RemoteHostName = "mail.contoso.com"
      $TargetDeliveryDomain = "<domain>.mail.onmicrosoft.com"
      $OnPremCred = (Get-Credential)
      
      # Move mailboxes in CSV file to Exchange Online
      foreach ($Mailbox in $Mailboxes) {
      $params = @{
      Identity               = $mailbox.EmailAddress
      Remote                 = $true
      RemoteHostName         = $RemoteHostName
      TargetDeliveryDomain   = $TargetDeliveryDomain
      RemoteCredential       = $OnPremCred
             }
      
      New-MoveRequest @params
      
         }
      
  6. PowerShell を使用してプライマリ メールボックスのみをExchange Onlineに移動する

    アーカイブ メールボックスの場所がExchange Onlineにあり、プライマリ メールボックスの場所が Exchange オンプレミスにあり、次のコマンドを実行するシナリオがあります。

    $Mailboxes = Import-Csv "C:\Migration\Users.csv"
    $RemoteHostName = "mail.contoso.com"
    $TargetDeliveryDomain = "<domain>.mail.onmicrosoft.com"
    $OnPremCred = (Get-Credential)
    
    # Move mailboxes in CSV file to Exchange Online
    foreach ($Mailbox in $Mailboxes) {
    $params = @{
    Identity               = $mailbox.EmailAddress
    Remote                 = $true
    RemoteHostName         = $RemoteHostName
    TargetDeliveryDomain   = $TargetDeliveryDomain
    RemoteCredential       = $OnPremCred
           }
    
    New-MoveRequest @params
    
       }
    

    その結果、エラー メッセージの後に表示される大きなコマンド構文の一部である次のエラー メッセージが表示されます。

    You must specify the PrimaryOnly parameter
    Target user ‘XXXXXX’ already has an archive mailbox.
    
    PS C:\> New-MoveRequest -Identity "Maisha.Lee@contoso.com" -Remote -RemoteHostName "mail.contoso.com" -TargetDeliveryDomain "<domain>.mail.onmicrosoft.com" -RemoteCredential (Get-Credential)
    You must specify the PrimaryOnly parameter.
    Target user 'Maisha Lee' already has an archive mailbox.
    + CategoryInfo          : NotSpecified: (:) [New-MoveRequest], MailboxReplicationPermanentException
    + FullyQualifiedErrorId : [Server=PAXP190MB1743,RequestId=3f8179c3-aa93-453f-9e14-d824968f34c4,TimeStamp=5/28/2022
    7:19:13 AM] [FailureCategory=Cmdlet-MailboxReplicationPermanentException] FE8B9422,Microsoft.Exchange.Management.
    Migration.MailboxReplication.MoveRequest.NewModernMoveRequest
    + PSComputerName        : outlook.office365.com
    

    エラー メッセージが表示されたら、次の手順を実行します。

    • -PrimaryOnly パラメーターを前のコマンド構文に追加して、プライマリ メールボックスのみをExchange Onlineに移動する新しい移動要求を作成するときにエラーを解決します。

    • 次の詳細を入力します。

      • ID: メールボックス名または電子メール アドレス。
      • RemoteHostName: 手順 2 でコピーしたリモート サーバー。
      • PrimaryOnly: 値を空のままにします。
      • TargetDeliveryDomain: Exchange Online organization メールボックスに使用されるプライマリ SMTP ドメイン。
      • RemoteCredential: 特権を持つオンプレミス管理者アカウント。

      新しい移動要求に対してコマンドを実行すると、次のコマンド構文に示すように資格情報サインイン要求が表示されます。

      New-MoveRequest -Identity "Maisha.Lee@contoso.com" -Remote -RemoteHostName "mail.contoso.com" -PrimaryOnly -TargetDeliveryDomain "<domain>.mail.onmicrosoft.com" -RemoteCredential (Get-Credential)
      
    • オンプレミスの資格情報 (RemoteCredential) のパスワードを入力します。

  7. PowerShell を使用してアーカイブ メールボックスのみをExchange Onlineに移動する

    PS C:\> New-MoveRequest -Identity "Maisha.Lee@contoso.com" -Remote -RemoteHostName "mail.contoso.com" -TargetDeliveryDomain "<domain>.mail.onmicrosoft.com" -RemoteCredential (Get-Credential)
    You must specify the PrimaryOnly parameter.
    Target user 'Maisha Lee' already has an archive mailbox.
    + CategoryInfo          : NotSpecified: (:) [New-MoveRequest], MailboxReplicationPermanentException
    + FullyQualifiedErrorId : [Server=PAXP190MB1743,RequestId=3f8179c3-aa93-453f-9e14-d824968f34c4,TimeStamp=5/28/2022
    7:19:13 AM] [FailureCategory=Cmdlet-MailboxReplicationPermanentException] FE8B9422,Microsoft.Exchange.Management.
    Migration.MailboxReplication.MoveRequest.NewModernMoveRequest
    + PSComputerName        : outlook.office365.com
    
    • 前のコマンド構文に ArchiveOnly パラメーターを追加して、アーカイブ メールボックスのみをExchange Onlineに移動する新しい移動要求を作成するときにエラーを解決します。
    • 次の詳細を入力します。
      • ID: メールボックス名または電子メール アドレス。
      • RemoteHostName: 手順 2 でコピーしたリモート サーバー。
      • ArchiveOnly: 値を空のままにします。
      • TargetDeliveryDomain: Exchange Online organization メールボックスに使用されるプライマリ SMTP ドメイン。
      • RemoteCredential: 特権を持つオンプレミス管理者アカウント。

    新しい移動要求に対してコマンドを実行すると、次のコマンド構文に示すように、資格情報サインイン要求が表示されます。

    New-MoveRequest -Identity "Maisha.Lee@contoso.com" -Remote -RemoteHostName "mail.contoso.com" -ArchiveOnly -TargetDeliveryDomain "<domain>.mail.onmicrosoft.com" -RemoteCredential (Get-Credential)
    

    オンプレミスの資格情報 (RemoteCredential) のパスワードを入力します。

  8. メールボックスの移動状態を取得する

    • Get-MoveRequest コマンドレットを使用して、メールボックス移動要求の状態を取得します。

      Get-MoveRequest -Identity "Maisha.Lee@contoso.com" | Get-MoveRequestStatistics
      
    • 次のコマンドを実行して、すべてのメールボックス移動要求を取得します。

      Get-MoveRequest | Get-MoveRequestStatistics
      

      次のスクリーンショットに示すように、出力にはメールボックスの移動状態が 完了 状態として表示されます。

      ユーザーがメールボックスの移動状態を取得できるようにするコマンドを示すスクリーンショット。

      そうではなく、メールボックスの移動要求を完了できない場合は、移動要求を一時停止して再開できます。

Exchange Onlineメールボックスをオンプレミスのorganizationに移動する

PowerShell を使用してExchange Onlineメールボックスをオンプレミスのorganizationに移動するには、次の手順を実行します。

  1. Exchange Online PowerShell に接続する: 管理者として PowerShell を起動し、次のコマンドを実行して PowerShell Exchange Online接続します。

    PS C:\> Connect-ExchangeOnline
    

    注:

    Exchange Online メールボックスをオンプレミスにプルしていません。 実際、Exchange Online メールボックスをオンプレミスにプッシュしています。 そのため、Exchange Onlineに接続し、Exchange Online PowerShell からコマンドを実行する必要があります。

  2. 移行エンドポイントのリモート サーバー URL の検索: Get-MigrationEndpoint コマンドレットを使用してリモート サーバー URL を取得します。

    Get-MigrationEndpoint | Format-List Identity, RemoteServer
    

    次の出力が表示されます。

    Identity     : Hybrid Migration Endpoint - EWS (Default Web Site)
    RemoteServer : mail.contoso.com
    

    注:

    前のコマンド構文出力の RemoteServer 値は、 ハイブリッド構成ウィザード (HCW) を実行して生成されます。

  3. 次のパートで必要に応じて 、RemoteServer URL の値をコピーします。

  4. PowerShell を使用してプライマリ メールボックスとアーカイブ メールボックスをExchange Onlineから移動する新しい移動要求を作成する

    • プライマリ メールボックスを移動し、Exchange Onlineからメールボックスをアーカイブする新しい移動要求の一部として、次の詳細を入力します。

      • ID: メールボックス名または電子メール アドレス。
      • RemoteTargetDatabase: Exchange オンプレミスメールボックス データベース。
      • RemoteHostName: 手順 2 でコピーしたリモート サーバー。
      • TargetDeliveryDomain: Exchange Online organization メールボックスに使用されるプライマリ SMTP ドメイン。
      • RemoteCredential: 特権を持つオンプレミス管理者アカウント。

      新しい移動要求を作成するために実行するコマンドは次のとおりです。

      New-MoveRequest -OutBound -RemoteTargetDatabase "DB01" -RemoteHostName "mail.contoso.com" -TargetDeliveryDomain "contoso.com" -RemoteCredential (Get-Credential)
      
    • コマンドを実行すると、次のコマンド構文に示すように表示される資格情報サインイン要求のオンプレミス資格情報 (RemoteCredential) のパスワードを入力します。

      PS C:\> Get-Mailbox -Identity "Jordy.Twin@contoso.com" | New-MoveRequest -OutBound -RemoteTargetDatabase "DB01" -RemoteHostName "mail.contoso.com" -TargetDeliveryDomain "contoso.com" -RemoteCredential (Get-Credential exoip\administrator)
      
      DisplayName Status TargetDatabase
      ----------- ------ --------------
      Jordy Twin  Queued
      

      オンプレミスの資格情報のパスワードを含む上記のコマンドを実行すると、次のエラーが発生する可能性があります。

      • メールボックス GUID を持つ受信者が見つかりません
      • ソースとターゲットの受信者のアーカイブ GUID が一致しない
  5. PowerShell を使用してプライマリ メールボックスのみをExchange Onlineから移動する

    • プライマリ メールボックスとアーカイブ メールボックスの場所がExchange Onlineにあり、プライマリ メールボックスのみを移動する場合は、新しい移動を作成するために実行するコマンドに-PrimaryOnlyパラメーターと-ArchiveDomain パラメーターを追加し、コマンド構文で次の詳細を入力します。

      • ID: メールボックス名または電子メール アドレス。
      • 送信: 値を空のままにします。
      • RemoteTargetDatabase: Exchange オンプレミスメールボックス データベース。
      • RemoteHostName: 手順 2 でコピーしたリモート サーバー。
      • PrimaryOnly: 値を空のままにします。
      • ArchiveDomain: Exchange Online organization メールボックスに使用されるプライマリ SMTP ドメイン。
      • TargetDeliveryDomain: Exchange Online organization メールボックスに使用されるプライマリ SMTP ドメイン。
      • RemoteCredential: 特権を持つオンプレミス管理者アカウント。

      新しい移動要求を作成するために実行するコマンドは次のとおりです。

      New-MoveRequest -OutBound -RemoteTargetDatabase "DB01" -RemoteHostName "mail.contoso.com" -PrimaryOnly -ArchiveDomain "<domain>.mail.onmicrosoft.com" -TargetDeliveryDomain "contoso.com" -RemoteCredential (Get-Credential)
      

      コマンドを実行すると、次のコマンド構文に示すように資格情報サインイン要求が表示されます。

      PS C:\> Get-Mailbox -Identity "Jordy.Twin@contoso.com" | New-MoveRequest -OutBound -RemoteTargetDatabase "DB01" -RemoteHostName "mail.contoso.com" -PrimaryOnly -ArchiveDomain "<domain>.mail.onmicrosoft.com" -TargetDeliveryDomain "contoso.com" -RemoteCredential (Get-Credential exoip\administrator)
      
      DisplayName Status TargetDatabase
      ----------- ------ --------------
      Jordy Twin  Queued
      

      オンプレミスの資格情報 (RemoteCredential) のパスワードを入力します。

  6. メールボックスの移動状態を取得する

    • Get-MoveRequest コマンドレットを使用して、メールボックス移動要求の状態を取得します。

      PS C:\> Get-MoveRequest -Identity "Jordy.Twin@contoso.com" | Get-MoveRequestStatistics | ft DisplayName,StatusDetail,TotalMailboxSize,TotalArchiveSize,PercentComplete
      
      DisplayName StatusDetail TotalMailboxSize             TotalArchiveSize PercentComplete
      ----------- ------------ ----------------             ---------------- ---------------
      Jordy Twin  Completed    231.6 MB (242,877,775 bytes) 0 B (0 bytes)                100
      

      メールボックスの移動が完了します。 そうではなく、メールボックスの移動要求を完了できない場合は、移動要求を一時停止して再開できます。

完了した移行バッチを削除する次の手順を実装するには、「 完了した移行バッチを削除する」を参照してください。