Microsoft 365 との間で移行されたメールボックスのメールボックスの問題をアーカイブする
元の KB 番号: 2757430
問題
Microsoft 365 との間でメールボックスを移行し、アーカイブ メールボックスを使用すると、Microsoft Exchange Online の Microsoft Exchange メールボックス レプリケーション サービス (MRS) が、移行の終了時にメールボックスの ArchiveDomain プロパティのターゲット ドメイン値にスタンプを付けるという問題が発生します。
Note
この問題は、アーカイブ メールボックスを持たないアカウントでは発生しません。
アーカイブ メールボックスに関連するシナリオは 5 つあります。 シナリオごとに異なる解決策が必要です。
- シナリオ 1 - オンボード: オンプレミスの Microsoft Exchange Server メールボックスを Exchange Online に移動します。
- シナリオ 2 - オンボード: アーカイブ メールボックスは Exchange Online に存在し、プライマリ メールボックスをオンプレミスの Exchange Server 環境から Exchange Online に移動します。
- シナリオ 3 - オフボード: アーカイブ メールボックスを有効にしてから、プライマリ メールボックスとアーカイブ メールボックスの両方を Exchange Online からオンプレミスの Exchange Server 環境に移行します。 同様のシナリオは、プライマリ メールボックスが既にオンプレミスにあり、アーカイブ メールボックスを Exchange Online からオンプレミスの Exchange Server 環境にオフボードすることにした場合にも発生します。
- シナリオ 4 - オフボード: プライマリ メールボックスでアーカイブ メールボックスが有効になっていない場合、プライマリ メールボックスを Exchange Online からオンプレミスの Exchange Server 環境に移動します。
- シナリオ 5 - オフボード: プライマリ メールボックスはオンプレミスの Exchange Server 環境に存在し、アーカイブ メールボックスは Exchange Online に存在します。 このシナリオは、次のいずれかのアクションを実行するときに発生する可能性があります。
- プライマリ メールボックスをオフボードします。 ただし、アーカイブ メールボックスは Exchange Online に残しておきます。
- プライマリ メールボックスとアーカイブ メールボックスの両方が、オンプレミスの Exchange Server 環境にあります。 ただし、アーカイブ メールボックスのみをオンボードします。
Note
サポートされている唯一のアーカイブ分割シナリオは、オンプレミスのプライマリ メールボックスと Exchange Online のアーカイブ メールボックスです。
原因
この問題は、メールボックスがオンプレミスの Exchange Server 環境と Exchange Online の間で移行された場合に発生します。
次の Windows PowerShell コマンドレットを使用してアーカイブのプロパティを表示すると、アーカイブの状態が [アクティブ] になっていることがわかります。 ただし、アーカイブ情報の多くは不足しています。
Get-Mailbox alias |fl Name, Archive*
Note
オンプレミスの Exchange 管理シェルまたは Exchange Online PowerShell を使用して、コマンドレットを実行できます。 Exchange Online PowerShell の使用方法の詳細については、「 Connect Windows PowerShell to the Service」を参照してください。
コマンドレットを実行すると、結果は次のようになります。
Name : jsmith
ArchiveDatabase :
ArchiveGuid : 00000000-0000-0000-0000-000000000000
ArchiveName : {}
ArchiveQuota : 100 GB (107,374,182,400 bytes)
ArchiveWarningQuota : 90 GB (96,636,764,160 bytes)
ArchiveDomain : contoso.mail.onmicrosoft.com
ArchiveStatus : Active
ソリューション
この問題を解決するには、シナリオに応じて、次のいずれかの方法を使用します。
シナリオ 1
シナリオ 1 の問題は次のように解決されました。Exchange Online へのオンボード移行はすべて解決され、アーカイブ メールボックスがテナント管理者によって有効になるまで ArchiveDomain プロパティは設定されなくなります。
この問題が解決される前に、ユーザーは Outlook にアーカイブ メールボックスが存在すると報告し、認証プロンプトを受け取りました。 ただし、ユーザーは Outlook Web App に同じアーカイブ メールボックスを表示できません。 (Microsoft はアーカイブを "ゴースト アーカイブ" と言います。これは、ユーザーがアクセスできる真のアーカイブ メールボックスではないためです。
シナリオ 2
シナリオ 2 の問題は、次のように解決されました。メールボックスの移動を担当する MRS コンポーネントが、Exchange Online アーカイブ メールボックスの存在を正しく考慮するようになりました。 そのため、ユーザーは Outlook または Outlook Web App のアーカイブ メールボックスにエラーなしで正しくアクセスできます。 必要なアクションはありません。
シナリオ 3
シナリオ 3 の両方のバリエーションの問題は、次のように解決されます。Exchange Online の MRS は、ArchiveDomain プロパティの値をオンプレミス ドメインに設定します。 そのため、ユーザーは Outlook または Outlook Web App のアーカイブ メールボックスにエラーなしで正しくアクセスできます。 必要なアクションはありません。
シナリオ 4
シナリオ 4 の問題は次のように解決されました。このシナリオでは、Exchange Online の MRS によって ArchiveDomain プロパティの値がオンプレミス ドメインに設定されます。 そのため、アーカイブ メールボックスが有効になっていない場合でも、ユーザーは Outlook にアーカイブ メールボックスが存在します。 このアーカイブは、シナリオ 1 の 「解決」セクションに記載されている "ゴースト アーカイブ" に似ています。 ただし、アーカイブでは、オンプレミスの Exchange Server 環境の Exchange 管理者が、「シナリオ 5 の解決」セクションに記載されているスクリプトを実行する必要があります。 Microsoft では、このシナリオを解決するための更新プログラムをデプロイしました。 そのため、今後のオフボードは影響を受けなくなります。
Exchange Online からのオフボード移行を実行するときに影響を受けるかどうかを確認するには、スキャン モードで「シナリオ 5 の解決」セクションに記載されているスクリプトを実行します。
シナリオ 5
このシナリオでは、ArchiveDomain プロパティの値がオンプレミス ドメインに設定されます。 そのため、Outlook はアーカイブ メールボックスを見つけて開くことはありません。
シナリオ 4 と 5 を解決するために、Microsoft は、メールボックスを Exchange Online からオンプレミスの Exchange Server 環境に戻す場合に、必要な属性を自動的に変更するために役立つ次のスクリプトを提供します。 スクリプトを実行するには、次の手順に従います。
- メモ帳を起動します。
- 次のスクリプトをコピーしてメモ帳に貼り付けます。
#-------------------------------------------------------------------------------
#
# Copyright (c) Microsoft Corporation. All rights reserved.
#
# PLEASE NOTE:
# Microsoft Corporation (or based on where you live, one of its affiliates)
# licenses this supplement to you. You may use it with each validly licensed
# copy of Microsoft Online Services Migration Tools software (the "software").
# You may not use the supplement if you do not have a license for the software.
# The license terms for the software apply to your use of this supplement.
# Microsoft may provide support services for the supplement as described at
# http://www.support.microsoft.com/common/international.aspx.
#
#-------------------------------------------------------------------------------
#
# PowerShell Source Code
#
param([Parameter(Mandatory = $false)]
[string]$TenantCloudDomain,
[Parameter(Mandatory = $false)]
[string]$Domain,
[Parameter(Mandatory = $false)]
[Switch]$Fix,
[Parameter(Mandatory = $false)]
[Switch]$FindAllUsersInForest
)
function GetNameFromDN([string]$dn)
{
if ($dn.Length -eq 0) { return $null; }
return ($dn -split ",")[0].Replace("CN=", "")
}
Import-Module ActiveDirectory
If ($TenantCloudDomain.Length -eq 0) {
$ldapQuery = "(&(objectClass=user)(msExchArchiveAddress=*))"
} else {
$ldapQuery = "(&(objectClass=user)(msExchArchiveAddress=*)(!(&(msExchArchiveGuid=*)(!(msExchArchiveDatabaseLink=*))(msExchArchiveAddress=$TenantCloudDomain))))"
}
if ($Domain.Length -eq 0) {
# default domain to computer's domain
$computer = Get-WmiObject -Class Win32_ComputerSystem
$Domain = $computer.Domain
}
if ($FindAllUsersInForest -and $Fix) {
throw "You cannot specify -FindAllUsersInForest when running in -Fix mode, only one domain can be cleaned up at a time."
}
Write-Host "Looking for objects to clean up in ${Domain}: ${ldapQuery}"
$propertiesToLoad = @("msExchMailboxGuid","homeMDB","msExchArchiveGuid","msExchArchiveDatabaseLink","msExchArchiveAddress")
$tsStart = [DateTime](Get-Date)
if ($FindAllUsersInForest) {
$m = Get-ADObject -Server "${Domain}:3268" -SearchBase "" -LDAPFilter $ldapQuery -ResultSetSize $null -Properties $propertiesToLoad
} else {
$m = Get-ADObject -Server $Domain -LDAPFilter $ldapQuery -ResultSetSize $null -Properties $propertiesToLoad
}
$elapsed = [DateTime](Get-Date) - $tsStart
if ($m -eq $null) {
Write-Host "No objects need to be cleaned up."
return
}
$cleanedCount = 0
$failedCount = 0
$filename = $("~\ArchiveDomainCleanup_{0:yyyymmdd_HHmmss}.csv" -f (Get-Date))
# Run cleanup and output data to CSV file
Write-Host "Writing output to $filename..."
try {
$m | %{
$success = $true
if ($Fix) {
$prevError = $error[0]
Set-ADObject -Identity $_ -Server $Domain -Clear "msExchArchiveAddress"
if ($error[0] -ne $prevError) {
$success = $false
Write-Host "x" -NoNewLine
} else {
Write-Host "." -NoNewLine
}
}
if ($success) {
$cleanedCount++
# object was cleaned up successfully, let's append it to output CSV.
$mm = $_ | Select ObjectGuid,DistinguishedName
# Morph guid values from binary blob to proper guid
$mbxGuid = [Guid]$_.msExchMailboxGuid
if ($_.msExchArchiveGuid -ne $null) {
$archiveGuid = [Guid]$_.msExchArchiveGuid
} else {
$archiveGuid = $null
}
Add-Member -InputObject $mm -MemberType NoteProperty -Name CleanedArchiveDomain -Value $($_.msExchArchiveAddress)
Add-Member -InputObject $mm -MemberType NoteProperty -Name ExchangeGuid -Value $mbxGuid
Add-Member -InputObject $mm -MemberType NoteProperty -Name Database -Value $(GetNameFromDN $_.homeMDB)
Add-Member -InputObject $mm -MemberType NoteProperty -Name ArchiveGuid -Value $archiveGuid
Add-Member -InputObject $mm -MemberType NoteProperty -Name ArchiveDatabase -Value $(GetNameFromDN $_.msExchArchiveDatabaseLink)
$mm
} else {
$failedCount++
}
} | Export-CSV $filename -NoTypeInformatio
}
finally {
if ($Fix) {
Write-Host ""
Write-Host "Cleaned up $cleanedCount recipients."
if ($failedCount -gt 0) {
Write-Warning "Failed to update $failedCount recipients."
}
} else {
Write-Host "Discovered $cleanedCount recipients."
}
}
- [ファイル] メニューの [保存] をクリックします。
- [種類として保存 ボックスで、[すべてのファイル (.)]クリックします。
- [ ファイル名 ボックスに「Cleanup-ArchiveDomain.ps1」と入力し、 Save をクリックします。
- Cleanup-ArchiveDomain.ps1 ファイルを保存したディレクトリを見つけ、次のパラメーターと共にスクリプトを実行します。
Cleanup-ArchiveDomain.ps1 [-TenantCloudDomain serviceDomain] [-Domain domain] [-Fix] [-FindAllUsersInForest]
Note
- TenantCloudDomain パラメーターは、テナントがクラウド アーカイブ機能を使用する場合にのみ指定する必要があります。 パラメーターの値は、テナントがクラウド アーカイブ ( contoso.com など) にアクセスするために使用する DNS ドメイン名である必要があります。
- Domain パラメーターは、現在のコンピューターのドメインではないドメインでクリーンアップ機能を実行するために使用されます。
- [修正] スイッチは、実際のクリーンアップ機能をトリガーします。 スイッチの既定の機能 ("スキャン モード" とも呼ばれます) は、ユーザーを見つけて CSV ファイルに出力することだけです。
- TheFindAllUsersInForest スイッチはグローバル カタログを検索し、(すべてのドメイン間で) ローカル フォレスト内のすべての影響を受けるユーザーを検索します。 ただし、このスイッチを Fix スイッチと組み合わせることはできません。 一度に修正できるドメインは 1 つだけです。
詳細
さらにヘルプが必要ですか? Microsoft コミュニティを参照してください。