Tento článek patří do série, která vychází z mých poznámek při migraci Exchange organizace z verze 2010 na 2016. Nejde o kompletní postup, ale o popis hlavních bodů a oblastí. Příklady se týkají určitého daného designu, ale většinou se dají zobecnit. Stejně tak, i když jde o popis migrace, tak se informace hodí i pro novou instalaci či správu.
Oficiální dokumentace k Exchange Server 2016 je docela dobrá a obsahuje mnoho informací. Jen se některé věci hůře hledají a naopak jiné se stále dokola opakují. Na začátek je dobré se podívat na několik kapitol:
- Exchange architecture
- Planning and deployment for Exchange Server
- Deploy new installations of Exchange
Architektura Exchange 2016
V tomto článku se nebudeme věnovat fungování Exchange serveru, ale pouze jeho instalaci pro plánovanou migraci z verze 2010 na 2016. Očekáváme tedy administrátorské znalosti Exchange serveru 2010. Přesto si na začátek uvedeme jednu důležitou zmínku o architektuře.
Exchange 2010 používal celou řadu rolí (Mailbox, Client Access, Hub Transport, Unified Messaging a Edge Transport). Často jsme všechny, mimo té poslední, instalovali na jeden server. Exchange 2016 vše zredukoval pouze na dvě role (takže se zase vracíme zpět, kdy Exchange 2003 žádné role neměl). Hlavní je Mailbox server role, která obsahuje všechny komponenty z původních Mailbox, Client Access, Hub Transport a Unified Messaging rolí na Exchange 2010. Té se zde budeme věnovat. A pak Edge Transport server role, která se instaluje do DMZ a zabezpečuje komunikaci pošty s internetem (viry, spam, mailová pravidla).
Níže je oficiální schéma z Microsoft stránek.

Úvodní požadavky (System Requirements)
Nejprve musíme zkontrolovat, že splňujeme základní podmínky Exchange Server system requirements.
- Domain Functional Level i Forest Functional Level minimálně Windows Server 2008
- všechny Exchange servery musí být minimálně Exchange Server 2010 SP3 Update Rollup 11, to znamená Build 14.03.0266.002, seznam verzí je v článku Exchange Server Updates: build numbers and release dates - je podporována migrace (koexistence) z Exchange 2010 SP3 RU11 nebo Exchange 2013 CU 10
- instalaci budeme provádět na nový server s OS Windows Server 2012, Windows Server 2012 R2 nebo Windows Server 2016 (podporováno od Exchange Server 2016 CU3), edice Standard nebo Datacenter
- server musí být členem domény, musí být použita verze s GUI (není podporována verze Core nebo Nano)
- čím vyšší instalujeme Cumulative Update (CU), tím potřebujeme novější verzi .NET Framework (momentálně poslední CU10 vyžaduje .NET Framework 4.7.1)
- klienti jsou podporováni od Outlook 2010 SP2 s updatem KB2956191 a KB2965295
- pro určení různých parametrů můžeme použít Exchange Server Role Requirements Calculator
- diskové oddíly pro systém a uložení databáze musí být formátovány pomocí NTFS, oddíly s transakčními logy nebo Mailbox DB mohou být formátovány pomocí ReFS
Mezi požadavky jsou také minimální nároky na hardware. Dnes asi ve většině případů využijeme virtuální stroj (VM), kde je výhoda, že můžeme dle potřeby navyšovat prostředky. Servery jsem nejprve vytvořil se stejnými prostředky, jako jsem měl na Exchange 2010, ale velice rychle jsem musel navyšovat vRAM i počet v CPU, a dostal jsem se asi na dvojnásobek.
Splnění předpokladů (Prerequisites)
Pro vytvoření plánu nasazení, pro různé scénáře včetně migrace, můžeme použít online nástroj Exchange Server Deployment Assistant. Než začneme vlastní instalaci, tak musíme provést přípravné kroky Exchange Server prerequisites.
V dokumentaci se uvádí, že pokud chceme (alespoň chvíli) provozovat koexistenci s Exchange 2010 SP3, který nám běží na Windows Server 2008 R2 SP1, tak musíme nainstalovat KB3140410 hotfix for Outlook Anywhere. Já ale tento patch na systémech nemám a instalovat nejde (hlásí, že není určen pro můj systém).
Systémové komponenty
Abychom mohli instalovat Exchange 2016, tak musí být na serveru instalované určité Windows komponenty (roles and features). Pro instalaci potřebných Windows Feature můžeme využít PowerShell. Následující příkaz (je potřeba odstranit konce řádků, aby šlo o jeden příkaz) by měl nainstalovat vše potřebné pro Windows Server 2016.
Install-WindowsFeature NET-Framework-45-Features, RPC-over-HTTP-proxy, RSAT-Clustering, RSAT-Clustering-CmdInterface, RSAT-Clustering-Mgmt, RSAT-Clustering-PowerShell, Web-Mgmt-Console, WAS-Process-Model, Web-Asp-Net45, Web-Basic-Auth, Web-Client-Auth, Web-Digest-Auth, Web-Dir-Browsing, Web-Dyn-Compression, Web-Http-Errors, Web-Http-Logging, Web-Http-Redirect, Web-Http-Tracing, Web-ISAPI-Ext, Web-ISAPI-Filter, Web-Lgcy-Mgmt-Console, Web-Metabase, Web-Mgmt-Console, Web-Mgmt-Service, Web-Net-Ext45, Web-Request-Monitor, Web-Server, Web-Stat-Compression, Web-Static-Content, Web-Windows-Auth, Web-WMI, Windows-Identity-Foundation, RSAT-ADDS
Pozn.: V praxi jsme narazili na výkonové problémy, pokud byla na serveru komponenta Windows Defender. Odinstalace Uninstall-WindowsFeature -Name Windows-Defender
.
Potřebné aplikace
Microsoft uvádí, že dále je třeba instalovat software
- .NET Framework 4.7.1 nebo Download .NET Framework
- Microsoft Knowledge Base article KB3206632 - tato bezpečnostní aktualizace je kumulativní update z 13. 12. 2016 (OS verze 1607, build 14393.1770), ten byl již několikrát nahrazen (v tuto chvíli poslední KB4051033 - OS Build 14393.1914). Z Windows Update by se měla automaticky nainstalovat poslední verze.
- Visual C++ Redistributable Packages for Visual Studio 2013
- Microsoft Unified Communications Managed API 4.0, Core Runtime 64-bit
Příprava Active Directory Domain Services
Exchange server využívá ve velké míře Active Directory Domain Services (AD DS). Před instalací prvního serveru musíme provést změny v AD DS. Nejjednodušší je nechat tyto úpravy provést instalačního průvodce, kterého musíme spustit pod dostatečnými právy. Účet musí být členem skupin Schema Admins a Enterprise Admins. Alternativně můžeme vyvolat ručně v příkazové řádce pomocí instalátoru Exchange serveru.
Pozn.: Po úpravě AD již není možné instalovat žádný Exchange 2013 server.
Aktualizace (rozšíření) Active Directory schéma
Exchange přidává svoje vlastní atributy do AD DS schéma a upravuje existující třídy a atributy. Proto je před instalací potřeba rozšířit schéma o tyto atributy. U Exchange 2016 dokonce dochází ke změně schématu v některých Cumulative Update (takže před jejich instalací je třeba aktualizovat schéma).
Setup.exe /PrepareSchema /IAcceptExchangeServerLicenseTerms
Příprava Active Directory a domény
Dále je potřeba připravit Active Directory forest a jeho domény, aby Exchange mohl ukládat informace o uživatelských schránkách a konfiguraci serverů v organizaci. Při tomto procesu se vytvoří kontejnery, objekty a další položky v Active Directory, což se označuje jako Exchange Organization.
První příkaz připraví Active Directory forest a aktuální doménu (vytváří další kontejnery, bezpečnostní skupiny a nastavuje oprávnění). Pokud máme domén více, tak v každé musíme použít druhý příkaz (s jednou doménou jej vůbec nepoužijeme).
Setup.exe /PrepareAD /OrganizationName:"organization name" /IAcceptExchangeServerLicenseTerms Setup.exe /PrepareAllDomains /IAcceptExchangeServerLicenseTerms
Instalace Exchange Serveru
Instalační média získáme podle toho, jakým kanálem jsme získali licenci. Ale protože instalace aktualizace Cumulative Update (CU) jsou vlastně kompletní instalace, tak instalaci zatím poslední verze CU10 Exchange Serveru můžeme veřejně stáhnout (je potřeba po nainstalování do určité doby zadat licenční klíč) z Cumulative Update 10 for Exchange Server 2016 (KB4099852). Odkazy na poslední verze se doplňují do článku Exchange Server Updates: build numbers and release dates.
Podrobný návod k instalaci, včetně screenshotů, se nachází u Microsoftu Install the Exchange 2016 Mailbox role using the Setup wizard. Jednotlivé kroky instalace:
- z instalačního DVD spustíme setup.exe
- můžeme zjistit, zda nejsou online k dispozici aktualizace
- zkopírují se soubory na lokální disk do
%WinDir%\Temp\ExchangeSetup
- zobrazí se stránka s radami, kde získat informace
- musíme souhlasit s licenčními podmínkami
- můžeme zvolit doporučené nastavení, kdy se nastavení odesílání informací do MS, nebo nepoužít a odesílání je vypnuté
- zvolíme roli Mailbox role, automaticky se přidá Management Tools a neumožní instalovat Edge Transport role, pro jistotu zatrhneme, aby se nainstalovaly komponenty Windows, ale ty jsme již instalovali dopředu

- můžeme ponechat standardní cestu instalace
C:\Program Files\Microsoft\Exchange Server\V15
, a dozvíme se, že instalace zabere 8201,1 MB (takový drobek) - protože provádíme migraci, tak již existuje Exchange Organization a tudíž se nyní nezobrazí krok, kde bychom ji vytvářeli
- v další kroku volíme, zda chceme používat Microsoft Malware Protection
- poté dojde ke kontrole připravenosti, zda jsou splněny všechny předpoklady, pokud je nalezena nějaká chyba, tak můžeme zvolit pouze Retry, pokud ji odstraníme
- problém může být například to, že jsme neprovedli úpravy AD DS a Setup neběží s dostatečnými právy (Schema Admins a Enterprise Admins), v tom případě jej musíme spustit znovu, pak se připraví AD v průběhu instalace
- pokud je vše v pořádku, tak klikneme na Install (instalace trvá dlouho)

Pozn.: Již v průběhu instalace se můžeme podívat do logů C:\ExchangeSetupLogs\ExchangeSetup.log
, zda vše probíhá korektně.
Informace o verzi serverů
V článku Exchange Server Updates: build numbers and release dates nalezneme seznam verzí a k nim odpovídající Build number, například Exchange Server 2016 CU10 je 15.01.1531.003. Verze si můžeme vypsat PowerShellem.
[PS] C:\>Get-ExchangeServer | FT Name, Edition, AdminDisplayVersion -AutoSize Name Edition AdminDisplayVersion ---- ------- ------------------- MAIL StandardEvaluation Version 15.1 (Build 1531.003)
Rozhraní pro správu
Pro správu máme stále příkazovou řádku (PowerShell) Exchange Management Shell, ale místo Exchange Management Console se nově používá webové Exchange Administrative Center (EAC), které nahradilo také Exchange Control Panel (ECP).
Připojení na EAC (Exchange Admin Center)
Virtuální adresář na IIS pro EAC se jmenuje ECP (zůstalo to historicky). Pokud účet, kterým spravujeme Exchange server, nemá mailbox, tak se normálně připojíme na adresu serveru https://<<server name>>/ecp/
. Ale pokud schránku má, a ta se nachází na původním Exchange 2010 (ještě jsme ji nepřesunuli), tak se i na adrese nového serveru dostaneme na 2010 server, kde není administrace. Musíme použít speciální link https://<<server name>>/ecp/?ExchClientVer=15
. Zmínka je v Create an Exchange 2016 mailbox.

Zadání licenčního klíče (Product Key)
Podle klíče se určí, zda jde o edici Standard nebo Enterprise.
- EAC - Exchange Admin Center
- Servers - Servers
- zvolíme server a klikneme na Enter Product Key
- zadáme klíč a klikneme na Save
- restartujeme službu Microsoft Exchange Information Store
Exchange a certifikáty
Dokumentace Configure Exchange 2016 certificates, Digital certificates and encryption in Exchange Server
Exchange po instalaci vytvoří 2 self-signed certifikáty (třetí je pro IIS), jejich Friendly name:
- Microsoft Exchange - 5 let, IMAP, POP, IIS, SMTP, důvěřují mu všechny Exchange servery v organizaci, šifruje interní komunikaci mezi Exchange servery a v rámci služeb serveru, nepoužívá se pro klienty
- Microsoft Exchange Server Auth Certificate - 5 let, SMTP, slouží pro autentizaci mezi servery pomocí OAuth (vypadá to, že na všech Exchange serverech je ten samý)
- WMSVC-SHA2 - 10 let, pro vzdálenou správu IIS (využívá jej Web Management service), nesmíme mazat, jinak tato služba nenastartuje a pak nejdou instalovat aktualizace Exchange
Na internetu se řeší, že si někdo smaže certifikát WMSVC-SHA2 (což jsem udělal i já) - Event ID 1007 — IIS Web Management Service Authentication. Ale návody, jako Web Management Service (WMSvc) could not be started: 2147483640, jsou zbytečné. Zjistil jsem, že protože jde o Self-signed certifikát, tak se vložil také do Trusted Root Certification Authorities. A i když ho smažeme v Personal, tak v Trusted zůstane. Takže na něj stačí kliknout pravým tlačítkem a zvolit Copy a vložit do Personal.
Nové certifikáty
Pro přístup klientů bychom měli vystavit důvěryhodný certifikát minimálně od interní autority. Pro šifrování SMTP provozu s externími servery potřebujeme veřejně důvěryhodný certifikát. Počet certifikátů se doporučuje minimalizovat, takže vytvoříme jeden pro všechny servery s řadou jmen SAN (Subject Alternative Name).
Můžeme vygenerovat žádost a tu pak použít na interní či veřejné certifikační autoritě:
- EAC - Exchange Admin Center
- Servers - Certificates
- kliknutím na tlačítko plus (New) se spustí průvodce, kde můžeme vystavit Self-signed certifikát nebo připravit žádost pro CA
- projdeme průvodce, kde zvolíme domény (SAN) a parametry certifikátu, který uložíme do souboru (musí se zadat síťová cesta)
- když certifikát vystavíme, tak jej následně dokončíme - vpravo pod Status link Complete

Přiřazení služeb
- aby se certifikát začal používat, tak jej musíme přiřadit k určitým službám
- zvolíme certifikát a jeho editaci (Edit)
- záložka Services a přiřadíme služby, které chceme
Když nastavíme nový certifikát a přiřadíme mu všechny služby, tak certifikát Microsoft Exchange bude mít stále přiřazeny služby IIS a SMTP. Microsoft uvádí, že s tím není třeba nic dělat. Na IIS se změní certifikát pro Default Web Site, ale zůstane na Exchange Back End.
Databáze pro schránky a logy
Mailbox databáze
Dokumentace Manage mailbox databases in Exchange Server
- EAC - Exchange Admin Center
- Servers - Databases
Při instalaci Exchange serveru se nám vytvořila první databáze s názvem Mailbox Database <číslo> a do ní se umístily systémové schránky. Soubory databáze i transakčních logů jsou umístěny defaultně v cestě C:\Program Files\Microsoft\Exchange Server\V15\Mailbox\
. Protože je dobré mít datové soubory a logy umístěné každé na jiném disku (a to jinde, než je operační systém), tak buď přesuneme soubory výchozí databáze, nebo vytvoříme databázi novou (což mi přijde lepší).
Když vytvoříme jednu nebo více nových DB, tak můžeme zadat rozumné jméno a definovat cestu k datovým souborům a logům. Po vytvoření nové Mailbox DB je nutné provést restart služby Microsoft Exchange Information Store. Následně DB editujeme a nastavíme požadované limity (Limits) na velikost schránek a v klientském nastavení (Client Settings) přiřadíme adresář (Offline address book).
Pokud máme server pro testování, nebo prostě zatím není zařazen do standardního zálohování, tak potřebujeme nastavit odmazávání transakčních logů, aby se nám příliš neplnil disk. Exchange 2016 Enable Circular Logging
- EAC - Exchange Admin Center
- Servers - Databases
- vybereme Mailbox DB - Edit - Maintenance - Enable Circular Logging - Save
- musíme provést Remount DB
Přesun systémových schránek do nové DB
Exchange server obsahuje určité speciální systémové schránky. Při instalaci nové verze Exchange serveru se v první Mailbox DB vytvoří nové systémové schránky. Pokud chceme takovou DB odstranit, tak nejprve musíme přesunout všechny schránky. Dokumentace Recreate missing arbitration mailboxes, Move system mailboxes.
Můžeme si vypsat systémové schránky, buď ze všech DB
Get-Mailbox -Arbitration | FT Name, ServerName, Database
nebo pouze z určité DB
Get-Mailbox -Database "Mailbox Database 0168801019" Get-Mailbox -Database "Mailbox Database 0168801019" -Arbitration | FT Name, ServerName, Database
Následně je přesunout do nově vytvořené DB
New-MoveRequest "Migration.8f3e8816-2011-43e4-9691-aba62d229136" -TargetDatabase DB01
Prvně musíme přesunout Migration mailbox, dále můžeme pro přesun využít EAC.
Odstranění staré databáze schránek
- EAC - Exchange Admin Center
- Servers - Databases
- vybereme Mailbox DB - Delete
Pokud se v databázi nachází nějaké schránky, tak dostaneme informaci a smazání neproběhne. Pokud se odstranění provede, tak dostaneme informaci, že DB byla odstraněna. Musíme ale ručně smazat soubory této databáze.
Také můžeme dostat informaci, že se nepodařilo odstranit monitoring mailbox object dané DB v AD DS (nalezneme je v ADUC - Microsoft Exchange System Objects - Monitoring Mailboxes), protože nemáme oprávnění. To můžeme provést ručně, ale musíme zjistit jméno tohoto HealthMailbox. Info Exchange 2013/2016 Monitoring Mailboxes. Nejjednodušší je vypsat si monitoring mailboxy a ten hledaná se zobrazí jako poškozený.
[PS] C:\> Get-Mailbox -Monitoring Name Alias ServerName ProhibitSendQuota ---- ----- ---------- ----------------- HealthMailboxa3f38237d... HealthMailboxa3f3... mail1 Unlimited WARNING: The object firma.local/Microsoft Exchange System Objects/Monitoring Mailboxes/HealthMailboxa3f38237d8334a5da13b26ea3a9956f2 has been corrupted or isn't compatible with Microsoft support requirements, and it's in an inconsistent state. The following validation errors happened: WARNING: Database is mandatory on UserMailbox.
Po odstranění DB se může logovat chyba
Event ID 1006: The Microsoft Exchange Mailbox Replication service was unable to process jobs in a mailbox database.
Řešení je restart služby Microsoft Exchange Mailbox Replication service.
Exchange a logy
Na Exchange serveru se vytváří řada různých logů. Stranou ponecháme transakční logy Mailbox DB. Protože je k dispozici řada webových služeb, tak máme standardní IIS logy. Ty mají jednu špatnou vlastnost, že se neodmazávají. Defaultní cesta je C:\inetpub\logs\LogFiles
. Oproti Exchange 2010 musíme opravdu řešit mazání starých logů (nejlépe automatizovaně skriptem), protože měsíc logů může zabírat i desítky GB.
Nově i sám Exchange výrazně více loguje než dříve. Logy dosahují několik desítek GB a obsahují mnoho desítek tisíc souborů. Cesta C:\Program Files\Microsoft\Exchange Server\V15\Logging
a C:\Program Files\Microsoft\Exchange Server\V15\Bin\Search\Ceres\Diagnostics\Logs
.
Nějaký popis logů a skript na jejich mazání (v době, kdy jsem jej stahoval, v sobě měl chyby, takže jsem si jej trochu přepsal) je v Exchange 2013/2016/2019 Logging - Clear out the Log files.
Exchange Server Health Checker
Užitečný skript, který kontroluje nastavení Exchange serveru podle Best Practice, bezpečnostní nastavení a zranitelnosti. Poslední verze ke stažení HealthChecker.
.\HealthChecker.ps1 .\HealthChecker.ps1 -BuildHtmlServersReport
Komentáře
Tak tohle je moc pěkná série článků o migraci na Exchange 2016. Žádné kecy, jen čisté maso. Je znát, že to psal zkušený rutinér, je tam všchno, co je potřeba. Z pozice dlouholetého Exchange admina a implementátora musim jen pochválit.
Dobrý den, po 4 letech provozu Exchange 2016 má složka logů umístěna v C:\...Exchange\V15\logs cca 80Gb.
Máte nějaký vyzkoušený a hlavně bezpečný skript pro výmaz starých logů? Našel jsem tento článek, ale přiznám se, že tento skript neznám a nerad bych se "střelil do nohy". Stačil mi teď nový rok a FIPFS
https://www.alitajran.com/cleanup-logs-exchange-2013-2016-2019/
Děkuji moc
odpověď na [2]Vašek K: To mne velmi překvapuje, že je to tak málo. Mě se vytváří 30GB logů týdně. A o mazání píšu přímo na konci tohoto článku :)
odpověď na [3]Samuraj: Já to pročítal, on je problém ,že skript na té stránce již není dostupný. Proto jsem i poslal alternativní odkaz s tím, jestli náhodou už nemá s daným skriptem někdo zkušenost. Co se týče Exchange, jsem fakt asi až moc opatrný
Musím pochválit, pomohá mě tahla serie a vše od Vás napsané. Jen pro laiky jako j, drobná chybička v příkazu
Setup.exe /Prepare Schema /IAcceptExchangeServerLicenseTerms má být PrepareSchema.