Exchange Server 2016 Deinstallation scheitert mit Jan23SU – Ein Fall aus der Praxis

Im Rahmen eines strategischen Consulting-Projekts sollte eine bestehende hochverfügbare Exchange Server 2016 DAG-Umgebung (Build 15.1.2507.17, CU23 mit January 2023 Security Update) auf eine moderne Plattform mit Exchange Server 2019 migriert werden.
Die neue Exchange-Umgebung wurde mit Exchange Server 2019 CU14 inklusive April 2024 Hotfix (Apr24HU) auf aktuellem Stand installiert und sämtliche Postfächer, von Benutzer- und Systempostfächern bis hin zu den (leider noch vorhandenen) Public Folders wurden vollständig und erfolgreich migriert.
Geplante Vorgehensweise
Nach Abschluss der Migration war vorgesehen, die verbleibenden Exchange Server 2016 ordnungsgemäß zu deinstallieren. Ein Update auf eine neuere CU oder SU war - aus diversen Gründen nicht mehr geplant, da der Fokus auf der Ausmusterung lag.
Dieses Vorgehen ist in manchen Migrationsprich und stellt unter normalen Umständen kein Problem dar.
Das Problem (Deinstallation schlägt fehl)
Bei der Deinstallation eines der Exchange Server 2016 schlug das Setup im zweiten Schritt fehl – mit folgender, zunächst irreführender Fehlermeldung:
"Object '<ServerName>' couldn't be found on '<DomainControllerName>'"
Exchange Setup Log
The following error was generated when "$error.Clear();
uninstall-MsiPackage -ProductCode $RoleProductCode -LogFile $RoleLogFilePath -PropertyValues ("ESE=1");
$lochost=hostname;
$exchsrv=Get-ExchangeServer -Identity $lochost -DomainController $RoleDomainController;
if (-not $exchsrv.IsMailboxServer)
{
uninstall-MsiPackage -ProductCode $RoleTeleProductCode -LogFile $RoleLogFilePath;
}
if ( $RoleTransProductCode -ne [system.guid]::empty )
{
uninstall-MsiPackage -ProductCode $RoleTransProductCode -LogFile $RoleLogFilePath;
}
uninstall-MsiPackage -ProductCode $RoleTtsProductCode -LogFile $RoleLogFilePath;
" was run: "Microsoft.Exchange.Configuration.Tasks.ManagementObjectNotFoundException: The operation couldn't be performed because object 'ATEX1' couldn't be found on 'ATDC1.meinefirma.at'.
at Microsoft.Exchange.Configuration.Tasks.Task.ThrowError(Exception exception, ErrorCategory errorCategory, Object target, String helpUrl)
at Microsoft.Exchange.Configuration.Tasks.GetObjectWithIdentityTaskBase`2.InternalProcessRecord()
at Microsoft.Exchange.Configuration.Tasks.Task.<ProcessRecord>b__91_1()
at Microsoft.Exchange.Configuration.Tasks.Task.InvokeRetryableFunc(String funcName, Action func, Boolean terminatePipelineIfFailed)"
Ein Blick in das Setup-Log unter C:\ExchangeSetupLogs\ExchangeSetup.log zeigte deutlich: Der Fehler tritt auf, weil das Setup-Skript das AD-Objekt des Exchange Servers nicht mehr finden kann.
Der Grund dafür ist, dass in Schritt 1 der Deinstallation das zugehörige Objekt bereits aus der Active Directory-Konfiguration entfernt wurde, während das Setup in Schritt 2 versucht, Sprachpakete und weitere Komponenten zu deinstallieren – dies jedoch aufgrund der fehlenden AD-Zuordnung nicht mehr erfolgreich ausführen kann.
Ein bekanntes Problem, das durch das January 2023 Security Update (Jan23SU) für Exchange 2016 und 2019 verursacht wird. Microsoft hat dies im Support-Artikel "Object '' couldn't be found..." dokumentiert. Der Bug betrifft insbesondere CU23 von Exchange 2016 in Kombination mit Jan23SU.
Warum der Workaround nicht unbedingt optimal ist
Ein von Microsoft empfohlener Workaround, wie etwa die Installation eines Updates, ist in diesem Fall nicht mehr ohne Weiteres anwendbar, da der betroffene Exchange Server im Hinblick auf Active Directory bereits teilweise deinstalliert wurde: Das zugehörige Serverobjekt unterhalb von CN=Servers (CN=Configuration,DC=XXX,DC=XX, CN=Services,CN=Microsoft Exchange, CN=MeineOrganisation,CN=Administrative Groups, CN=Exchange Administrative Group (XXX), CN=Servers) existiert nicht mehr und lässt sich auch per PowerShell (Get-ExchangeServer, Get-TransportService) nicht mehr auffinden.
Zwar wäre eine nachträgliche Installation des Updates technisch vermutlich noch möglich, wurde in diesem Szenario jedoch von mir nicht gesondert getestet.
Pragmatischer Blick: Ist das ein echtes Problem?
In den letzten Schritten einer Exchange-Migration liegt der Fokus im Grunde nur noch auf dem sauberen Rückbau der alten Umgebung. Im vorliegenden Fall besteht der verbleibende Rückstand ausschließlich in einigen lokalen Restkomponenten – etwa Diensten, Registry-Einträgen oder installierten Sprachpaketen – sowie in einem nicht vollständig abgeschlossenen Setup-Prozess.
Ein Einfluss auf die Exchange-Organisation selbst besteht hingegen nicht mehr: Das Active Directory enthält keine Einträge zum betroffenen Server, produktive Exchange-Dienste sind nicht betroffen und auch für die neue Exchange Server 2019-Umgebung besteht keinerlei Risiko.
Da der betreffende Server beziehungsweise die gesamte virtuelle Maschine planmäßig außer Betrieb genommen und vollständig aus der Domäne entfernt werden soll, stellt der verbleibende Deinstallationsfehler aus technischer wie aus sicherheitstechnischer Sicht kein relevantes Problem dar.
Etwaige vorbereitende Maßnahmen wie das Entfernen verbliebener Datenbanken, die Behandlung von Monitoring-Mailboxen sowie die Anpassung relevanter interner und externer URLs beziehungsweise URIs wurden in diesem Fall bereits im Vorfeld durchgeführt und waren – wie auch andere Aufgaben – Bestandteil des regulären Rückbaus der Exchange-Umgebung; es kann jedoch sein, dass diese Schritte in Ihrer Umgebung noch separat durchgeführt werden müssen!