シェルで MoveMailbox.ps1 スクリプトを使用してメールボックスを移動する

 

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

トピックの最終更新日: 2015-03-09

Microsoft Exchange Server 2007 の Move-Mailbox コマンドレットと同様に、MoveMailbox.ps1 スクリプトは、メールボックスを移動するための同期管理環境を提供します。既定では、スクリプトは、C:\Program Files\Microsoft\Exchange Server\V14\Scripts にインストールされます。

注意

このスクリプトは、ローカル移動にのみ使用できます。リモート (クロスフォレスト) 移動にこのスクリプトを使用することはできません。リモート メールボックスの移動の詳細については、「メールボックスのフォレスト間の移動要求を準備する」を参照してください。

MoveMailbox.ps1 は、次のタスクを実行します。

  1. ローカル移動要求を作成します。

  2. メールボックスの移動が完了するまで待機します。

  3. 移動の完了後、移動要求をクリアします。

MoveMailbox.ps1 には、2 つのパラメーター セットが含まれています。最初のパラメーター セットは、1 つのメールボックスを移動します。さもなければ、複数のメールボックスをコマンドにパイプライン処理できます。2 番目のパラメーター セットは、指定されたデータベースでホストされているすべてのメールボックスを移動します。さもなければ、データベース オブジェクトをコマンドにパイプライン処理して、これらのメールボックス データベースに存在しているすべてのメールボックスを移動できます。

注意

シェルはスクリプトを自動的に読み込みません。すべてのスクリプトの前に ".</STRONG>" を付ける必要があります。たとえば、MoveMailbox.ps1 スクリプトを実行するには、「.\MoveMailbox.ps1」と入力します。

スクリプトの使用と記述の詳細については、「Exchange 管理シェルを使用したスクリプトの作成」を参照してください。

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

MoveMailbox.ps1 を使用して特定のメールボックスを移動する

この手順を実行する際には、あらかじめアクセス許可を割り当てる必要があります。必要なアクセス許可の一覧については、以下を参照してください。「メールボックスのアクセス許可」の「メールボックスの移動」。

次のパラメーター構文セットと表には、特定のメールボックスの移動に使用できるパラメーターを示します。

MoveMailbox.ps1 -Identity <Object> -DatabaseMap <Hashtable> -TargetDatabase <Object> [-StartBatchSize <Int32>] [-BadItemLimit <Int32>] [-AutoSuspend] [-pollInterval <Int32>] [-DomainController <Object>]
パラメーター 必須 説明

DatabaseMap

必須

DatabaseMap パラメーターには、移動先と移動元の各データベース間のマップを指定します。パイプライン方法を使用して移動先のメールボックスを特定する場合に、このパラメーターを使用します。DatabaseMap パラメーターには、次のものが必要です。

  • 以下の構文を使用します。 @{"<SourceDatabase>"="<TargetDatabase>"}

  • SourceDatabase 名は、Get-Mailbox コマンドレットによって報告されるデータベース名と一致している必要があります。

  • 複数のデータベース マップを指定できます。複数のマップをセミコロン (;) で区切ります (たとえば、{"DB1"="DBA";"DB2"="DBB"})。

注意

このパラメーターを TargetDatabase パラメーターと共に使用することはできません。コマンドをパイプライン処理していて、ユーザーが Get-Mailbox コマンドレットの ID と一致するが、DatabaseMap コマンドレットのソース データベースとは一致しない場合、ユーザーのメールボックスはスキップされます。

Identity

必須

Identity パラメーターには、移動するメールボックスの ID を指定します。このパラメーターには、以下の値を指定できます。

  • ADObjectID

  • エイリアス

  • 識別名 (DN)

  • ドメイン\アカウント

  • GUID

  • LegacyExchangeDN

  • SmtpAddress

  • ユーザー プリンシパル名 (UPN)

注意

Get-Mailbox コマンドレットを使用して、Identity パラメーターをパイプライン処理できます。

TargetDatabase

必須

TargetDatabase パラメーターには、メールボックスを移動するデータベースの ID を指定します。このパラメーターには、以下の値を指定できます。

  • GUID

  • 識別名 (DN)

  • サーバー\データベース名

  • データベース名

注意

このパラメーターを DatabaseMap パラメーターと共に使用することはできません。

AutoSuspend

省略可能

AutoSuspend スイッチには、CompletionInProgress のステータスに達する前に移動要求を中断するかどうかを指定します。移動が中断されると、AutoSuspended のステータスになります。このパラメーターを使用する場合は、Resume-MoveRequest コマンドレットを使用して移動を完了する必要があります。

BadItemLimit

省略可能

BadItemLimit パラメーターには、移動要求でメールボックスの破損が検出された場合にスキップする不良アイテム数を指定します。不良アイテムをスキップしない場合は、値 0 を使用します。問題のあるアイテムを無制限にスキップするには、値 -1 を使用します。このパラメーターの有効な入力の範囲は、-12,147,483,647 です。既定値は 0 です。既定値 0 を維持し、移動要求が失敗した場合にだけ BadItemLimit パラメーターの値を変更することをお勧めします。

DomainController

省略可能

DomainController パラメーターには、この構成の変更を Active Directory に書き込むドメイン コントローラーの完全修飾ドメイン名 (FQDN) を指定します。

PollInterval

省略可能

PollInterval パラメーターには、移動要求が完了したかどうかを確認するまで待機する時間を秒単位で指定します。たとえば、PollInterval が 180 に設定されている場合、MoveMailbox.ps1 スクリプトでは、移動要求の状態を 3 分ごとに確認し、移動の状態が [完了] かどうかを調べます。既定値は 10 秒です。

StartBatchSize

省略可能

StartBatchSize パラメーターには、負荷分散目的でメールボックスの移動を開始する頻度を指定します。このパラメーターは、複数のメールボックスを一度に移動する場合にのみ適用されます。たとえば、このパラメーターが 10 に設定されていて、15 個のメールボックスを移動する場合、スクリプトでは、10 個のメールボックスが同じターゲット データベースに移動していることを検出したときに、New-MoveRequest コマンドレットを呼び出します。

例 1

この例では、"ay"で始まるメールボックスを移動します。これらのメールボックスがメールボックス データベース DB1 に存在している場合、この例では、DatabaseMap パラメーターを使用して、メールボックスをメールボックス データベース DBA に移動します。これらのメールボックスが DB2 に存在している場合、この例では、メールボックスをメールボックス データベース DBB に移動します。

Get-Mailbox ay* | .\MoveMailbox.ps1 -DatabaseMap @{"DB1"="DBA";"DB2"="DBB"}

例 2

この例では、Tony Smith のメールボックスを DB2 に移動します。

.\MoveMailbox.ps1 -Identity "Tony@Contoso.com" -TargetDatabase "DB2"

MoveMailbox.ps1 を使用して、特定のデータベースをホームとしているメールボックスを移動する

この手順を実行する際には、あらかじめアクセス許可を割り当てる必要があります。必要なアクセス許可の一覧については、以下を参照してください。「メールボックスのアクセス許可」の「メールボックスの移動」。

次のパラメーター構文セットと表には、データベースに基づいてメールボックスを移動するパラメーターを示します。

MoveMailbox.ps1 -MailboxDatabase <Object> [-DatabaseMap <Hashtable>] [-TargetDatabase <Object>] [-StartBatchSize <Int32>] [-BadItemLimit <Int32>] [-AutoSuspend] [-pollInterval <Int32>] [-DomainController <Object>]

パラメーター

必須

説明

MailboxDatabase

必須

MailboxDatabase パラメーターには、メールボックスの移動元となるメールボックス データベースを指定します。

このパラメーターには、以下の値を指定できます。

  • GUID

  • 識別名 (DN)

  • サーバー\データベース名

  • データベース名

注意

このパラメーターを DatabaseMap パラメーターと共に使用することはできません。

AutoSuspend

省略可能

AutoSuspend スイッチには、CompletionInProgress のステータスに達する前に移動要求を中断するかどうかを指定します。移動が中断されると、AutoSuspended のステータスになります。このパラメーターを使用する場合は、Resume-MoveRequest コマンドレットを使用して移動を完了する必要があります。

BadItemLimit

省略可能

BadItemLimit パラメーターには、移動要求でメールボックスの破損が検出された場合にスキップする不良アイテム数を指定します。不良アイテムをスキップしない場合は、値 0 を使用します。問題のあるアイテムを無制限にスキップするには、値 -1 を使用します。このパラメーターの有効な入力の範囲は、-12,147,483,647 です。既定値は 0 です。既定値 0 を維持し、移動要求が失敗した場合にだけ BadItemLimit パラメーターの値を変更することをお勧めします。

DatabaseMap

省略可能

DatabaseMap パラメーターには、移動先と移動元の各データベース間のマップを指定します。パイプライン方法を使用して移動先のメールボックスを特定する場合に、このパラメーターを使用します。DatabaseMap パラメーターには、次のものが必要です。

  • 以下の構文を使用します。 @{"<SourceDatabase>"="<TargetDatabase>"}

  • SourceDatabase 名は、Get-Mailbox コマンドレットによって報告されるデータベース名と一致している必要があります。

  • 複数のデータベース マップを指定できます。複数のマップをセミコロン (;) で区切ります (たとえば、{"DB1"="DBA";"DB2"="DBB"})。

注意

このパラメーターを TargetDatabase パラメーターと共に使用することはできません。コマンドをパイプライン処理していて、ユーザーが Get-Mailbox コマンドレットの ID と一致するが、DatabaseMap コマンドレットのソース データベースとは一致しない場合、ユーザーのメールボックスはスキップされます。

DomainController

省略可能

DomainController パラメーターには、この構成の変更を Active Directory に書き込むドメイン コントローラーの完全修飾ドメイン名 (FQDN) を指定します。

PollInterval

省略可能

PollInterval パラメーターには、移動要求が完了したかどうかを確認するまで待機する時間を秒単位で指定します。たとえば、PollInterval が 180 に設定されている場合、MoveMailbox.ps1 スクリプトでは、移動要求の状態を 3 分ごとに確認し、移動の状態が [完了] かどうかを調べます。既定値は 10 秒です。

StartBatchSize

省略可能

StartBatchSize パラメーターには、負荷分散目的でメールボックスの移動を開始する頻度を指定します。このパラメーターは、複数のメールボックスを一度に移動する場合にのみ適用されます。たとえば、このパラメーターが 10 に設定されていて、15 個のメールボックスを移動する場合、スクリプトでは、10 個のメールボックスが同じターゲット データベースに移動していることを検出したときに、New-MoveRequest コマンドレットを呼び出します。

TargetDatabase

省略可能

TargetDatabase パラメーターには、メールボックスを移動するデータベースの ID を指定します。このパラメーターには、以下の値を指定できます。

  • GUID

  • 識別名 (DN)

  • サーバー\データベース名

  • データベース名

注意

このパラメーターを DatabaseMap パラメーターと共に使用することはできません。

例 1

この例では、メールボックス データベース DB1 上に存在しているすべてのメールボックスをデータベース DB2 に移動します。

.\MoveMailbox.ps1 -MailboxDatabase DB1 -TargetDatabase DB2

例 2

この例では、Get-MailboxDatabase コマンドレットを使用して、メールボックス データベースが "DB1" で始まるすべてのメールボックス データベース オブジェクトを取得し、結果を MoveMailbox.ps1 スクリプトにパイプライン処理します。

Get-MailboxDatabase DB1* | .\MoveMailbox.ps1 -DatabaseMap @{"DB10"=DBA;"DB11"="DBB";"DB12"="DBA"}

 © 2010 Microsoft Corporation.All rights reserved.