メインコンテンツにスキップ

保持設定によるメールボックス移行の問題を検出して修正する

コピーされたメールボックスやGmailからのコピーで、移行先メールボックスの保持により回復可能な項目フォルダーがいっぱいになる問題を解決します。

注意: PowerShell 連携を利用するには、ShareGate Migrate の Pro または Enterprise サブスクリプションが必要です。Essentials プランではご利用いただけません。

メールボックスを Microsoft 365 にコピーする際、特定の保持またはホールド設定によって、移行先の Recoverable Items フォルダーがいっぱいになる場合があります。

最も一般的な原因は 保持設定 であり、新しい Exchange Online メールボックスではデフォルトで有効になっていることが多いです。

ShareGate Migrate はこの潜在的な問題を検出し、影響を受けるメールボックスをレポートに一覧表示します。このレポートは、メールボックス移行を開始する前に表示される Copy Summary 画面で確認できます。

問題のある保持設定を特定して無効化する方法

メールボックス移行を開始する前に、問題のある保持設定を特定して無効化し、移行後にこのページの PowerShell スクリプトを使って再度有効化できます。

Copy mailboxes または Copy from Gmail で移行を設定すると、いずれかのメールボックスに保持設定がある場合、Copy summary 画面で警告通知が表示されます。

警告メッセージが表示されたら、Export list of Single Item Recovery values をクリックしてリストをドライブに保存してください。その後、下記のスクリプト内のパスをエクスポートした CSV ファイルのパスに更新し、移行先環境で実行します。

スクリプトの実行が完了したら、Exchange Online で設定が反映されるまで少なくとも4時間待ってから移行を進めてください。

保持設定を無効化する

$CsvPath = Read-Host "Replace this message with the absolute path of the report you saved on your drive between these quotation marks"

$CsvPath = $CsvPath.Trim('"')

if (-not $CsvPath) {
Write-Error "No path provided. Exiting."
return
}

if (-not (Test-Path -LiteralPath $CsvPath)) {
Write-Error "File not found at '$CsvPath'. Exiting."
return
}

$ErrorActionPreference = 'Stop'

$ModuleName = "ExchangeOnlineManagement"
$RequiredVersion = "3.9.0"

$module = Get-Module -ListAvailable -Name $ModuleName | Where-Object {
$_.Version -eq [Version]$RequiredVersion
}

if (-not $module) {
Install-Module -Name $ModuleName -RequiredVersion $RequiredVersion `
-Scope CurrentUser -Force -AllowClobber
}

Import-Module -Name $ModuleName -RequiredVersion $RequiredVersion -Force

Connect-ExchangeOnline -ShowBanner:$false

try {
$rows = Import-Csv -LiteralPath $CsvPath

foreach ($r in $rows) {
$email = $r.EmailAddress

if ($r.SingleItemRecoveryEnabled -ieq 'true') {
Set-Mailbox -Identity $email -SingleItemRecoveryEnabled $false
Write-Host "Disabled SingleItemRecovery: $email"
}

}
}
finally {
Disconnect-ExchangeOnline -Confirm:$false
}

保持設定を元に戻す

下記のスクリプト内のパスをエクスポートした CSV ファイルのパスに更新し、移行先でホールドを再度有効化するために実行できます。

$CsvPath = Read-Host "Replace this message with the absolute path of the report you saved on your drive between these quotation marks"

$CsvPath = $CsvPath.Trim('"')

if (-not $CsvPath) {
Write-Error "No path provided. Exiting."
return
}

if (-not (Test-Path -LiteralPath $CsvPath)) {
Write-Error "File not found at '$CsvPath'. Exiting."
return
}

$ErrorActionPreference = 'Stop'

$ModuleName = "ExchangeOnlineManagement"
$RequiredVersion = "3.9.0"

$module = Get-Module -ListAvailable -Name $ModuleName | Where-Object {
$_.Version -eq [Version]$RequiredVersion
}

if (-not $module) {
Install-Module -Name $ModuleName -RequiredVersion $RequiredVersion `
-Scope CurrentUser -Force -AllowClobber
}

Import-Module -Name $ModuleName -RequiredVersion $RequiredVersion -Force

Connect-ExchangeOnline -ShowBanner:$false

try {
$rows = Import-Csv -LiteralPath $CsvPath

foreach ($r in $rows) {
$email = $r.EmailAddress

if ($r.SingleItemRecoveryEnabled -ieq 'true') {
Set-Mailbox -Identity $email -SingleItemRecoveryEnabled $true
Write-Host "Enabled SingleItemRecovery: $email"
}
}
}
finally {
Disconnect-ExchangeOnline -Confirm:$false
}


この記事は人工知能を使用して翻訳されています。内容に不明点がある場合は、元の英語版をご参照ください。

こちらの回答で解決しましたか?