Pozn.: Prakticky jsem instaloval Exchange Server SE roli Mailbox server na Windows Server 2025. V prostředí s jinou interní a veřejnou DNS doménou a Split DNS (Split-Brain DNS). Do existující organizace Exchange 2016.
Přesměrování komunikace
Interní komunikace jde většinou napřímo na IP adresy Exchange serverů podle DNS záznamů. Externí komunikace standardně prochází skrze hraniční Firewall a využívá jednu veřejnou IP adresu. Část komunikací jsme již nastavili, nyní je potřeba přesunou (a ověřit) veškeré komunikace na nové servery.
Přístup klientů
Nastavení přístupu klientů (Client Access) jsme řešili v druhé části. Pro externí i interní přístup jsme použili společnou URL adresu (DNS záznam / Shared namespace). Z počátku bylo vše směrováno na původní servery. Nyní potřebujeme přesměrovat na nové servery.
Buď upravíme politiky na Firewallu pro externí komunikaci a změníme interní DNS záznamy, aby virtuální jméno obsahovalo IP adresy nových serverů. Nebo změníme IP adresy serverů. Původním serverům nastavíme nějaké nové adresy. A novým serverům změníme adresy na ty původní. Pak komunikace automaticky směruje na nové servery. A to i v případě, kdy v některých aplikacích používáme IP adresu serveru pro odesílání pošty.
Změna IP adresy
Adresu lze změnit jednoduše. Pro větší jistotu je možné přepnout nový server do Maintenance Mode, změnit IP adresu a server restartovat. Exchange využívá primárně DNS jména. Po změně adresy si server zaregistruje nový DNS záznam. Na všech ostatních Exchange serverech je potřeba vymazat DNS cache, aby servery hned začaly používat novou adresu a vše fungovalo (například DAG).
ipconfig /flushdns
Tok pošty
Ve třetí části jsme řešili nastavení konektorů a Mail Flow. Příchozí SMTP komunikaci vyřešíme změnou IP adres serverů nebo úpravou směrování na Firewallu a v interních aplikacích. Odchozí SMTP komunikaci nastavíme úpravou odesílacích konektorů, kde změníme servery v Source server. Musíme také patřičně nastavit Firewall, aby fungovala odchozí a příchozí SMTP komunikace.
Exchange Hybrid
Pokud používáme Exchange Hydrid, tak musíme aktualizovat nastavení. Současnou konfiguraci můžeme zobrazit pomocí cmdletu Get-HybridConfiguration.
Na nový server nainstalujeme nejnovější verzi Hybrid Configuration Wizard. Můžeme to provést z Exchange Admin Center (EAC) - Hybrid, kde je odkaz https://aka.ms/HybridWizard. Projdeme průvodce, kde se jako optimální server detekuje nový Exchange. Ostatní hodnoty zůstávají přednastavené. Změníme servery v Receive Connector Configuration a Send Connector Configuration a spustíme aktualizaci.
Můžeme také řešit Deploy dedicated Exchange hybrid app.

Zrušení původního DAGu
Ve čtvrté části jsme přesunuli všechny poštovní schránky a odstranili staré databáze. Nyní odebereme členství serverů v původním DAGu a pak jej smažeme.
Odstranění členství serveru z DAGu
Pokud má DAG zapnutý Datacenter Activation Mode, tak jej nejprve musíme vypnout. Ten totiž vyžaduje, aby měl DAG alespoň dva členské servery.
Kontrola nastavení Datacenter Activation Mode
[PS] D:\>Get-DatabaseAvailabilityGroup | FT Name, DatacenterActivationMode Name DatacenterActivationMode ---- ------------------------ MailDAG DagOnly ExchangeDAG Off
Vypnutí Datacenter Activation Mode
Set-DatabaseAvailabilityGroup -Identity MailDAG -DatacenterActivationMode Off
Odebrání členství v DAG
- EAC - Exchange Admin Center
- Servers - Database Availability Groups
- zvolíme náš DAG a klikneme na ikonu počítače s ozubeným kolečkem (Manage DAG membership)
- vybereme server a klikneme na mínus (Remove), uložíme tlačítkem Save

Odstranění DAGu
Pravděpodobně používáme DAG s File Share Witness. V konfiguraci DAGu zjistíme, o kterou složku na kterém serveru se jedná, a následně ji můžeme odstranit.
Smazání Database Availability Group
- EAC - Exchange Admin Center
- Servers - Database Availability Groups
- zvolíme náš DAG a klikneme na ikonu koše (Delete)
- potvrdíme tlačítkem Yes

Kontroly a testy
Příchozí a odchozí spojení
Můžeme zkontrolovat, zda nepřichází spojení na původní servery. V IIS logu můžeme vidět klientské přístupy (MAPI/HTTP, ActiveSync, EWS, OAB atd). V protokolovém logu (a Message Tracking Logs), zda nepřichází či neodchází SMTP provoz.
Maintenance Mode
Původní servery můžeme na nějakou dobu přepnout do Maintenance Mode a sledovat všechny nepředvídané problémy. Než provedeme odinstalaci Exchange.
Remote Connectivity Analyzer
Můžeme ověřit, že všechny služby fungují a zda jsou připojení na nové servery. Pro kontroly funkčnosti můžeme využít Microsoft Remote Connectivity Analyzer.
Odinstalace Exchange
Dokončili jsme migraci, takže na závěr chceme vyřadit Exchange 2016 (Decommissioning) z naší organizace. Na původních Exchange serverech provedeme odinstalaci Exchange.
Odinstalace Exchange je podobný proces jako instalace kumulativní aktualizace. Microsoft doporučuje restartovat server před a po spuštění Setup a vypnout antivirus.
Grafický průvodce
Můžeme spustit standardní odinstalaci Windows aplikace pomocí Control Panel - Programs and Features nebo Settings - Apps - Installed apps / Settings - System - Apps & features. Zvolíme Microsoft Exchange Server 2016 Cumulative Update 23 a Uninstall. V některých článcích se tento způsob nedoporučuje, ale preferuje se spustit Setup.exe.

Příkazová řádka
Nebo můžeme využít příkazovou řádku (malá rada, v průběhu nesmíme měnit velikost okna, jinak skončí na výjimku) a Unattended Setup. Instalační soubor se nachází v cestě C:\Program Files\Microsoft\Exchange Server\V15\Bin, kterou máme standardně v proměnné PATH.
Setup.exe /mode:Uninstall
Log o odinstalaci se zapisuje (stejně jako při instalaci) do C:\ExchangeSetupLogs\ExchangeSetup.log. Celý průběh odinstalace v příkazové řádce:
C:\>Setup.exe /mode:Uninstall Microsoft Exchange Server 2016 Cumulative Update 23 Unattended Setup Mailbox role: Mailbox service Mailbox role: Unified Messaging service Mailbox role: Client Access service Mailbox role: Transport service Mailbox role: Front End Transport service Mailbox role: Client Access Front End service Management tools Languages Performing Microsoft Exchange Server Prerequisite Check Configuring Prerequisites COMPLETED Prerequisite Analysis COMPLETED Configuring Microsoft Exchange Server Preparing Setup COMPLETED Mailbox role: Mailbox service COMPLETED Mailbox role: Unified Messaging service COMPLETED Mailbox role: Client Access service COMPLETED Mailbox role: Transport service COMPLETED Mailbox role: Front End Transport service COMPLETED Mailbox role: Client Access Front End service COMPLETED Exchange Management Tools COMPLETED Language Files COMPLETED Stopping Services COMPLETED Removing Exchange Files COMPLETED Restoring Services COMPLETED Finalizing Setup COMPLETED The Exchange Server setup operation completed successfully.
Chyba Step 8 Languages - Access Denied
Na jednom serveru jsem při odinstalaci Exchange narazil na chybu. V kroku 8, když se odebíraly Language Packs, průvodce skončil následující chybou.
Error:
The following error was generated when "$error.Clear();
$regPath='HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall';
$PackageGUIDRegEx = "{9BBCB5[0-9a-fA-F]{2}-AAC3-4BF5-[0-9a-fA-F]{4}-A4D51A19BF14}";
$InstallPath = (Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\ExchangeServer\v15\setup').MsiInstallPath;
if(test-path ($regPath))
{
Write-ExchangeSetupLog -info ("Removing " + $RoleLanguagePackType + " Language Packs.");
Get-ChildItem ($regPath) | foreach{
if($_ -match "(?<ProductCode>$PackageGUIDRegEx)") {
$langPackPackageCode = $matches['ProductCode'];
if($langPackPackageCode -ne $null -and $langPackPackageCode.Length -ne 0) {
Write-ExchangeSetupLog -info ("Removing package $langPackPackageCode");
$language = $langPackPackageCode.Substring(20,4);
$logFilePath = [IO.Path]::Combine($RoleLogFilePath,"Uninstall") + '.' + $language + '.' + "OwaPlus" + "." + $RoleLogDateTime + ".msilog";
uninstall-MsiPackage -ProductCode ($langPackPackageCode) -LogFile ($logFilePath);
};
};
};
Get-Childitem -Path $InstallPath -include "*.Localized.js","*.Localized.min.js" -recurse | foreach ($_) {remove-item $_.fullname};
Write-ExchangeSetupLog -info "Remove Language Packs completed.";
};
" was run: "System.UnauthorizedAccessException: Access is denied ---> System.ComponentModel.Win32Exception: Access is denied
--- End of inner exception stack trace ---
at System.Management.Automation.Utils.NativeDirectoryExists(String path)
at System.Management.Automation.SessionStateInternal.IsItemContainer(CmdletProvider providerInstance, String path, CmdletProviderContext context)".
Restartoval jsem server a spustil odinstalaci z příkazové řádky. Vše proběhlo.
C:\>Setup.exe /mode:Uninstall Microsoft Exchange Server 2016 Cumulative Update 23 Unattended Setup Mailbox role: Mailbox service Mailbox role: Unified Messaging service Mailbox role: Client Access service Mailbox role: Transport service Mailbox role: Front End Transport service Mailbox role: Client Access Front End service Languages Performing Microsoft Exchange Server Prerequisite Check Configuring Prerequisites COMPLETED Configuring Microsoft Exchange Server Preparing Setup COMPLETED Language Files COMPLETED Stopping Services COMPLETED Removing Exchange Files COMPLETED Restoring Services COMPLETED Finalizing Setup COMPLETED The Exchange Server setup operation completed successfully.
Závěr
Na úplný závěr můžeme provést další kontroly a úklid. Vše záleží na našem prostředí.
- vyřadíme původní servery ze zálohování
- můžeme ověřit, že účty původních serverů byly odebrány ze skupin v AD
- můžeme ověřit, že byly původní servery odebrány z konfigurace Exchange organizace (tím se odstraní také jeho Autodiscover SCP) - pomocí ADSI Edit v cestě Configuration - Services - Microsoft Exchange - organizace - Administrative Groups - Exchange Administrative Group (FYDIBOHF23SPDLT) - Servers.
- smažeme původní servery z Active Directory a smažeme VM
Zatím zde nejsou žádné komentáře.