Archiwizowanie problemów ze skrzynką pocztową dla skrzynki pocztowej, która została zmigrowana do lub z platformy Microsoft 365

Oryginalny numer KB: 2757430

Problem

Podczas migracji skrzynki pocztowej do lub z platformy Microsoft 365 i używania archiwum skrzynki pocztowej występuje problem polegający na tym, że usługa replikacji skrzynki pocztowej programu Microsoft Exchange (MRS) w Microsoft Exchange Online ostempluje wartość domeny docelowej właściwości ArchiveDomain skrzynki pocztowej na końcu migracji.

Uwaga

Problem nie powinien występować na koncie, które nie ma archiwum skrzynki pocztowej.

Istnieje pięć scenariuszy związanych z archiwalnymi skrzynkami pocztowymi. Każdy scenariusz wymaga innego rozwiązania.

  • Scenariusz 1 — dołączanie: lokalne Microsoft Exchange Server skrzynki pocztowe są przenoszone do Exchange Online.
  • Scenariusz 2 — dołączanie: skrzynka pocztowa archiwum istnieje w Exchange Online i przenosisz podstawową skrzynkę pocztową ze środowiska lokalnego Exchange Server do Exchange Online.
  • Scenariusz 3 — odłączanie: włączasz skrzynkę pocztową archiwum, a następnie migrujesz podstawowe i archiwalne skrzynki pocztowe z Exchange Online do lokalnego środowiska Exchange Server. Podobny scenariusz występuje, gdy podstawowa skrzynka pocztowa jest już lokalna i decydujesz się na odłączenie archiwum skrzynki pocztowej z Exchange Online do lokalnego środowiska Exchange Server.
  • Scenariusz 4 — odłączanie: podstawowa skrzynka pocztowa nie ma włączonej archiwum skrzynki pocztowej i przenosisz podstawową skrzynkę pocztową z Exchange Online do lokalnego środowiska Exchange Server.
  • Scenariusz 5 — odłączanie: podstawowa skrzynka pocztowa istnieje w lokalnym środowisku Exchange Server, a skrzynka pocztowa archiwum istnieje w Exchange Online. Ten scenariusz może wystąpić podczas wykonywania jednej z następujących akcji:
    • Odłączasz podstawową skrzynkę pocztową. Jednak skrzynkę pocztową archiwum należy pozostawić w Exchange Online.
    • Skrzynki pocztowe podstawowe i archiwalne znajdują się w lokalnym środowisku Exchange Server. Jednak dołączasz tylko archiwum skrzynki pocztowej.

    Uwaga

    Jedynym obsługiwanym scenariuszem podziału archiwum jest podstawowa skrzynka pocztowa lokalna i archiwum skrzynki pocztowej w Exchange Online.

Przyczyna

Ten problem występuje, jeśli skrzynka pocztowa jest migrowana między lokalnym środowiskiem Exchange Server i Exchange Online.

Jeśli użyjesz następującego polecenia cmdlet Windows PowerShell, aby wyświetlić właściwości archiwum, zauważysz, że stan archiwum to Aktywny. Brakuje jednak wielu informacji archiwalnych.

Get-Mailbox alias |fl Name, Archive*

Uwaga

Do uruchomienia polecenia cmdlet można użyć lokalnej powłoki zarządzania programu Exchange lub Exchange Online programu PowerShell. Aby uzyskać więcej informacji na temat korzystania z programu Exchange Online programu PowerShell, przejdź do pozycji Połącz Windows PowerShell z usługą.

Po uruchomieniu polecenia cmdlet wynik wygląda następująco:

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

Rozwiązanie

Aby rozwiązać ten problem, użyj jednej z następujących metod, stosownie do danego scenariusza.

Scenariusz 1

Problem w scenariuszu 1 został rozwiązany w następujący sposób: wszystkie migracje dołączania do Exchange Online są rozwiązywane, a właściwość ArchiveDomain nie jest już ustawiana, dopóki skrzynka pocztowa archiwum nie zostanie włączona przez administratora dzierżawy.

Zanim ten problem został rozwiązany, użytkownicy zgłaszali obecność archiwum skrzynki pocztowej w programie Outlook i otrzymywali monity o uwierzytelnianie. Jednak użytkownicy nie widzą tej samej skrzynki pocztowej archiwum w Outlook Web App. (Firma Microsoft określa archiwum jako "archiwum duchów", ponieważ nie jest to prawdziwa archiwum skrzynki pocztowej, do których użytkownicy mogą uzyskiwać dostęp.

Scenariusz 2

Problem w scenariuszu 2 został rozwiązany w następujący sposób: składnik MRS, który jest odpowiedzialny za przenoszenie skrzynek pocztowych, teraz poprawnie wpływa na obecność skrzynki pocztowej archiwum Exchange Online. W związku z tym użytkownicy mogą prawidłowo uzyskiwać dostęp do swoich archiwalnych skrzynek pocztowych w programie Outlook lub Outlook Web App bez żadnych błędów. Nie jest wymagana żadna akcja.

Scenariusz 3

Problem w obu odmianach scenariusza 3 jest rozwiązywany w następujący sposób: funkcja MRS w Exchange Online ustawia wartość właściwości ArchiveDomain na domenę lokalną. W związku z tym użytkownicy mogą prawidłowo uzyskiwać dostęp do swoich archiwalnych skrzynek pocztowych w programie Outlook lub Outlook Web App bez żadnych błędów. Nie jest wymagana żadna akcja.

Scenariusz 4

Problem w scenariuszu 4 został rozwiązany w następujący sposób: W tym scenariuszu program MRS w Exchange Online ustawia wartość właściwości ArchiveDomain na domenę lokalną. W związku z tym użytkownicy widzą obecność archiwum skrzynki pocztowej w programie Outlook, nawet jeśli skrzynka pocztowa archiwum nie jest włączona. To archiwum przypomina "archiwum duchów", które zostało wymienione w sekcji "Rozwiązanie" dla scenariusza 1. Jednak archiwum nadal wymaga od administratora programu Exchange lokalnego środowiska Exchange Server uruchomienia skryptu dostarczonego w sekcji "Rozwiązywanie scenariusza 5". Firma Microsoft wdrożyła aktualizację, aby rozwiązać ten scenariusz. W związku z tym nie będzie to miało wpływu na przyszłe odłączanie.

Aby ustalić, czy występuje problem podczas przeprowadzania migracji odłączania z Exchange Online, uruchom skrypt podany w sekcji "Rozwiązanie scenariusza 5" w trybie skanowania.

Scenariusz 5

W tym scenariuszu wartość właściwości ArchiveDomain jest ustawiona na domenę lokalną. W związku z tym program Outlook nie może zlokalizować i otworzyć archiwum skrzynki pocztowej.

Aby rozwiązać problemy ze scenariuszami 4 i 5, firma Microsoft udostępnia następujący skrypt ułatwiający automatyczną zmianę niezbędnych atrybutów w przypadku przeniesienia skrzynek pocztowych z Exchange Online z powrotem do lokalnego środowiska Exchange Server. Aby uruchomić skrypt, wykonaj następujące kroki:

  1. Uruchom Notatnik.
  2. Skopiuj i wklej następujący skrypt w Notatniku:
#-------------------------------------------------------------------------------
#
# 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. W menu Plik kliknij pozycję Zapisz.
  2. W polu Zapisz jako typ kliknij pozycję Wszystkie pliki (.).
  3. W polu Nazwa pliku typeCleanup-ArchiveDomain.ps1, a następnie kliknij przycisk Zapisz.
  4. Znajdź katalog, w którym zapisano plik Cleanup-ArchiveDomain.ps1, a następnie uruchom skrypt wraz z następującymi parametrami:
Cleanup-ArchiveDomain.ps1 [-TenantCloudDomain serviceDomain] [-Domain domain] [-Fix] [-FindAllUsersInForest]

Uwaga

  • Parametr TenantCloudDomain należy określić tylko wtedy, gdy dzierżawa korzysta z funkcji archiwum w chmurze. Wartością parametru powinna być nazwa domeny DNS używana przez dzierżawcę do uzyskiwania dostępu do archiwów w chmurze, takich jak contoso.com.
  • Parametr Domena służy do uruchamiania funkcji oczyszczania w domenie, która nie jest domeną bieżącego komputera.
  • Przełącznik Poprawka wyzwala rzeczywistą funkcjonalność oczyszczania. Domyślną funkcją przełącznika (znaną również jako "tryb skanowania") jest po prostu znalezienie użytkowników, a następnie wyprowadzenie ich do pliku CSV.
  • PrzełącznikFindAllUsersInForest wyszukuje wykaz globalny i znajduje wszystkich użytkowników, których dotyczy problem, w lesie lokalnym (we wszystkich domenach). Nie można jednak połączyć tego przełącznika z przełącznikiem Poprawka. Możesz naprawić użytkowników tylko w jednej domenie jednocześnie.

Więcej informacji

Nadal potrzebujesz pomocy? Przejdź do witryny Microsoft Community.