Проблемы с архивным почтовым ящиком для почтового ящика, перенесенного в Microsoft 365 или из нее
Исходный номер базы знаний: 2757430
Проблема
При переносе почтового ящика в Microsoft 365 и использовании архивного почтового ящика возникает проблема, из-за которой служба репликации почтовых ящиков Microsoft Exchange (MRS) в Microsoft Exchange Online метки целевого значения домена свойства ArchiveDomain почтового ящика в конце миграции.
Примечание.
Проблема не должна возникать в учетной записи, которая не имеет архивного почтового ящика.
Существует пять сценариев, связанных с архивными почтовыми ящиками. Для каждого сценария требуется другое разрешение.
- Сценарий 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. Однако вы подключены только к архивным почтовым ящикам.
Примечание.
Единственный поддерживаемый сценарий разделения архива — это основной почтовый ящик в локальной среде и архивный почтовый ящик в Exchange Online.
Причина
Эта проблема возникает, если почтовый ящик переносится между локальной средой Exchange Server и Exchange Online.
Если вы используете следующий командлет Windows PowerShell для просмотра свойств архива, обратите внимание, что состояние архива является активным. Однако большая часть архивной информации отсутствует.
Get-Mailbox alias |fl Name, Archive*
Примечание.
Для запуска командлета можно использовать локальную оболочку управления Exchange или Exchange Online PowerShell. Дополнительные сведения об использовании Exchange Online PowerShell см. в статье "Подключение Windows PowerShell к службе".
При запуске командлета результат выглядит следующим образом:
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. (Корпорация Майкрософт ссылается на архив как "архив призрака", так как это не истинный почтовый ящик архива, к которому могут получить доступ пользователи.
Сценарий 2
Проблема в сценарии 2 устранена следующим образом: компонент MRS, отвечающий за перемещение почтовых ящиков, теперь правильно влияет на наличие почтового ящика Exchange Online. Таким образом, пользователи могут правильно получать доступ к своим архивным почтовым ящикам в Outlook или Outlook Web App без каких-либо ошибок. Предпринимать какие-либо действия не требуется.
Сценарий 3
Проблема в обоих вариантах сценария 3 устранена следующим образом: MRS в Exchange Online задает значение свойства ArchiveDomain в локальном домене. Таким образом, пользователи могут правильно получать доступ к своим архивным почтовым ящикам в Outlook или Outlook Web App без каких-либо ошибок. Предпринимать какие-либо действия не требуется.
Сценарий 4
Проблема в сценарии 4 устранена следующим образом: в этом сценарии MRS в Exchange Online задает для локального домена значение свойства ArchiveDomain. Поэтому пользователи видят наличие архивного почтового ящика в Outlook, даже если архивный почтовый ящик не включен. Этот архив напоминает "архив призрака", который упоминается в разделе "Решение" для сценария 1. Однако архив по-прежнему требует, чтобы администратор Exchange локальной среды Exchange Server выполнял скрипт, указанный в разделе "Решение сценария 5". Корпорация Майкрософт развернула обновление для решения этого сценария. Таким образом, будущие отключения не будут затронуты.
Чтобы определить, затронуты ли вы при переносе миграции из Exchange Online, запустите сценарий, указанный в разделе "Разрешение сценария 5" в режиме сканирования.
Сценарий 5
В этом сценарии для свойства ArchiveDomain задано значение локального домена. Поэтому Outlook не может найти и открыть архивный почтовый ящик.
Чтобы устранить сценарии 4 и 5, корпорация Майкрософт предоставляет следующий сценарий, чтобы автоматически изменить необходимые атрибуты при перемещении почтовых ящиков из 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."
}
}
- В меню File (Файл) выберите пункт Save (Сохранить).
- В поле "Сохранить как тип" нажмите кнопку "Все файлы" (.).
- В поле имени файла введитеCleanup-ArchiveDomain.ps1 и нажмите кнопку "Сохранить".
- Найдите каталог, в котором вы сохранили файл Cleanup-ArchiveDomain.ps1, а затем запустите скрипт вместе со следующими параметрами:
Cleanup-ArchiveDomain.ps1 [-TenantCloudDomain serviceDomain] [-Domain domain] [-Fix] [-FindAllUsersInForest]
Примечание.
- Параметр TenantCloudDomain должен быть указан только в том случае, если клиент использует функции облачного архива. Значением параметра должно быть DNS-доменное имя, которое клиент использует для доступа к облачным архивам, например contoso.com.
- Параметр домена используется для запуска функций очистки в домене, который не является доменом текущего компьютера.
- Переключатель "Исправление" активирует фактическую функциональность очистки. Функция переключателя по умолчанию (также известная как режим сканирования) — это просто найти пользователей, а затем вывести их в CSV-файл.
- ПараметрFindAllUsersInForest выполняет поиск по глобальному каталогу и находит всех затронутых пользователей в локальном лесу (во всех доменах). Однако этот параметр не может сочетаться с параметром Fix. Вы можете исправить пользователей только в одном домене одновременно.
Дополнительная информация
Требуется дополнительная помощь? Зайдите на сайт сообщества Майкрософт.