Поделиться через


Проблемы с архивным почтовым ящиком для почтового ящика, перенесенного в Microsoft 365 или из нее

Исходный номер базы знаний: 2757430

Проблема

При переносе почтового ящика в или из Microsoft 365 с использованием архивного почтового ящика возникает проблема, из-за которой в Microsoft Exchange Online служба репликации почтовых ящиков Microsoft Exchange (MRS) в конце миграции присваивает для свойства ArchiveDomain почтового ящика значение целевого домена.

Замечание

Проблема не должна возникать в учетной записи, которая не имеет архивного почтового ящика.

Существует пять сценариев, связанных с архивными почтовыми ящиками. Для каждого сценария требуется другое разрешение.

  • Сценарий 1. Подключение: вы перемещаете локальные почтовые ящики Microsoft Exchange Server в Exchange Online.
  • Сценарий 2. Подключение: архивный почтовый ящик существует в Exchange Online и перемещаете основной почтовый ящик из локальной среды Exchange Server в Exchange Online.
  • Сценарий 3. Отключение. Вы включите архивный почтовый ящик, а затем переносите основные и архивные почтовые ящики из Exchange Online в локальную среду Exchange Server. Аналогичный сценарий возникает, когда ваш основной почтовый ящик уже находится в локальной среде, и вы решаете переместить архивный почтовый ящик из Exchange Online в локальный сервер Exchange.
  • Сценарий 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

Solution

Чтобы устранить эту проблему, используйте один из следующих методов в соответствии с вашим сценарием.

Сценарий 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. Чтобы запустить скрипт, выполните следующее.

  1. Запустите Блокнот.
  2. Скопируйте и вставьте следующий скрипт в Блокнот:
#-------------------------------------------------------------------------------
#
# 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."
}
}
  1. В меню "Файл" нажмите кнопку "Сохранить".
  2. В поле "Сохранить как тип" нажмите кнопку "Все файлы" (.).
  3. В поле Имя файла введите Cleanup-ArchiveDomain.ps1 и нажмите Сохранить.
  4. Найдите каталог, в котором вы сохранили файл Cleanup-ArchiveDomain.ps1, а затем запустите скрипт вместе со следующими параметрами:
Cleanup-ArchiveDomain.ps1 [-TenantCloudDomain serviceDomain] [-Domain domain] [-Fix] [-FindAllUsersInForest]

Замечание

  • Параметр TenantCloudDomain должен быть указан только в том случае, если клиент использует функции облачного архива. Значение параметра должно быть DNS-доменным именем, которое клиент использует для доступа к облачным архивам, например contoso.com.
  • Параметр домена используется для запуска функций очистки в домене, который не является доменом текущего компьютера.
  • Переключатель "Исправление" активирует фактическую функциональность очистки. Функция переключателя по умолчанию (также известная как режим сканирования) — это просто найти пользователей, а затем вывести их в CSV-файл.
  • Параметр FindAllUsersInForest выполняет поиск по глобальному каталогу и находит всех затронутых пользователей в локальном лесу (во всех доменах). Однако этот переключатель не может использоваться вместе с параметром Fix. Вы можете исправить пользователей только в одном домене одновременно.

Дополнительные сведения

Все еще нужна помощь? Перейдите в сообщество Майкрософт.