Hned na začátku uvedu odkaz na pěkný a podrobný článek mého kolegy Jirky Hýzlera Přechod z Exchange Server 2003 na Exchange Server 2010. Můj popis je trochu jednodušší, protože obecně je migrace snazší z verze 2007 než 2003. A také jinak zaměřený, věnuji se problematickým oblastem a chybám, na které jsem narazil.
Velmi stručně migrace spočívá v následujících krocích:
- splnění počátečních podmínek
- instalace nového serveru Exchange Server 2010 (rozšíření AD, potřebné role)
- přesun rolí ze starého serveru
- přesun schránek
- odstranění starých databází
- odstranění starého serveru
V dnešním díle se věnujeme pouze instalaci nového serveru s Exchangem. Ten se zařadí do již existující organizace, ale pokud bychom neprováděli migraci, tak by byl postup velmi podobný.
Úvodní podmínky a příprava serveru
Abychom mohli začít instalaci, tak musíme mít splněny základní podmínky (uvádím svůj stav).
- Domain Functional Level i Forest Functional Level máme Windows Server 2008 R2 (minimálně musí být 2003)
- všechny Exchange servery jsou minimálně Exchange Server 2007 SP2, to znamená verze
8.2 (Build 176.2)
, seznam verzí je v článku Versions, builds & dates - máme připravený nový server s OS Windows Server 2008 R2 SP1
Pozn.: Když budeme připravovat disky/oddíly pro uložení databáze (edb) a logů (log), tak je doporučeno je formátovat pomocí NTFS s alokační jednotkou (allocation unit) o velikosti 64 kB (místo defaultní hodnoty 4 kB).
Na server musíme následně nainstalovat nějaké komponenty. Pokud nesplníme některý požadavek, tak budeme upozorněni na začátku instalace při kontrole.
Pro instalaci potřebných Windows Feature můžeme využít PowerShell, následující příkaz by měl nainstalovat vše potřebné.
Import-Module ServerManager Add-WindowsFeature NET-Framework,RSAT-ADDS,Web-Server,Web-Basic-Auth,Web-Windows-Auth,Web-Metabase,Web-Net-Ext, Web-Lgcy-Mgmt-Console,Web-WMI,WAS-Process-Model,RSAT-Web-Server,Web-ISAPI-Ext,Web-Digest-Auth,Web-Dyn-Compression, NET-HTTP-Activation,RPC-Over-HTTP-Proxy
Pokud budeme instalovat i roli Unified Messaging (UM), tak ještě potřebujeme Windows Desktop Experience.
Add-WindowsFeature Desktop-Experience
Pozn.: Tento návod jsem psal dlouho a během té doby vyšel SP2, takže jsem výše doplnil instalaci IIS 6 WMI Compatibility
(Web-WMI), která je pro SP2 potřebná.
Ještě (volitelně) můžeme/musíme stáhnout nějaké aplikace z MS, první dvě jsou pro UM roli, poslední, aby mohl Exchange indexovat Office dokumenty.
- Unified Communications Managed API 2.0, Core Runtime (64-bit)
- Microsoft Server Speech Platform Runtime (x64)
- Microsoft Office System Converter Filter Pack
Pokud se na začátku instalace UCM API objeví varování, že není nainstalován Visual C++ 2008 Redistributable, a jestli jej chcete nainstalovat. Ale instalace se nezdaří. Tak to může být tím, že v systému je již verze 9.0.30729 a vyžadována je 9.0.21022. Pak je třeba stáhnout a ručně instalovat Microsoft Visual C++ 2008 Redistributable Package (x64) .
Na závěr (spíše i několikrát v průběhu) je třeba provést restart.
Instalace Exchange Serveru
Pouze stručný přehled kroků :
- buď provedeme povýšení schéma AD ručně (popis v článku Prepare Active Directory and Domains) nebo spustíme setup pod potřebnými právy a provede se automaticky během instalace
- z instalačního DVD spustíme setup.exe
- zvolíme, jaké jazyky instalovat (standardně z DVD), a spustíme instalaci
- zvolíme custom a vybereme role mailbox, client access, hub transport, unified messaging, management tools jsou automaticky zvoleny
- CAS server bude přístupný zvenku - zadáme
mail.firma.cz
(podle našeho prostředí) - proběhne test splnění požadavků
- v dalším kroku začne instalace, která se skládá z několika částí, začne úpravou AD a končí instalací jednotlivých rolí
Nově nainstalovaný server se stane členem Exchange organizace, kde má Exchange 2007, a jeho instalace nijak neovlivní běh stávajících serverů nebo klientů. Server má zatím jen selfsigned certificate, takže pokud se k němu připojí nějací klienti, tak dostanou varování o jeho nedůvěryhodnosti.
Úvodní minikonfigurace
Nyní se můžeme připojit novou Exchange Management Console (EMC) ze serveru 2010. A samozřejmě si můžeme nainstalovat Management Tools na pracovní stanici klasickým způsobem z instalačního média. V přehledu (úvodní stránka Exchange 2010 Organizational Health) uvidíme celkový počet serverů, ale v Server Configuration vidíme pouze servery Exchange 2010. Pokud použijeme EMC 2007, tak vidíme všechny servery dohromady, ale budeme dostávat chyby při přístupu na nové funkce. Asi jste byli zvyklí, že EMC je značně pomalá, tak se připravte na to, že nová EMC je ještě znatelně pomalejší. I když ji používáme přímo na serveru, tak se vše provádí jako vzdálená volání.
Hned na začátku je dobré připravit nový certifikát. Nyní je již správa certifikátů možná přes EMC, což je určitě příjemné. Nový certifikát vytvoříme v EMC – Server Configuration – vybereme server a vpravo jsou možnosti. Po instalaci certifikátu musíme dát Assign a přiřadit potřebné služby. Pak můžeme odstranit starý certifikát.
Vhodné může být po instalaci spustit Best Practices Analyzer a případně upravit některé varování a informace.
Chyby, které mohou nastat
Instalace Exchange serveru a jeho aktualizací mi připadá jako naprosto amatérská. Pokud v průběhu instalace dojde k nějaké chybě, tak nám systém skončí ve stavu, kdy se nedá pokračovat. Hlavní problém je, že instalace vypne řadu služeb, ale již je nenastartuje. Instaloval jsem několik serverů a pokaždé se objevila nějaká nová chyba. Velký problém je s instalací Service Pack nebo Update Rollup. Dále jsou popsány řešení problémů, na které jsem narazil.
AuthorizationManager check failed
Pokud v průběhu instalace dojde k chybě a instalace skončí, tak i když danou chybu opravíme a spustíme znovu instalaci, tak ta hned končí novou chybou.
AuthorizationManager check failed
Je potřeba přepnout službu Windows Management Instrumentation z Disabled na Automatic a nastartovat ji.
The operation couldn't be completed because a change occurred in the remote forest
Výše uvedenou chybu můžeme dostat, pokud spustíme Exchange Management Console (EMC) na klientovi. Je to proto, že na serveru a klientovi nemáme stejnou verzi, třeba na obou SP1, ale na klientovi i Update Rollup 2, ale na serveru ještě ne. Ale ne všechny updaty se týkají Management Tools, takže se ne všechny instalují na stanici a proto ne vždy platí, že musí být stejná verze. Informaci o verzi můžeme získat pomocí PowerShellu.
Get-Command EXSetup | %{$_.FileVersionInfo}
The WinRM client received an HTTP server error status
Jiný problém může nastat na serveru i na klientovi, když spustíme EMC a tak dostaneme chybovou hlášku:
Connecting to remote server failed with the following error message : The WinRM client received an HTTP server error status (500), but the remote service did not include any other information about the cause of the failure. For more information, see the about_Remote_Troubleshooting Help topic. It was running the command 'Discover-ExchangeServer -UseWIA $true -SuppressError $true -CurrentVersion 'Version 14.1 (Build 218.15)''.
Je potřeba nainstalovat Windows Feature WinRM IIS Extension, pokud již je instalovaná, tak odstranit a nově nainstalovat.
Update Rollup 2 pro Exchange 2010 SP1
Jako první krok po instalaci serveru je dobré nahrát všechny aktualizace. Což může být třeba Rollup Update 2 (poslední RU obsahuje opravy ze všech předchozích). A v některých případech zjistíme, že to je horor. A stejný problém není jen u této aktualizace, ale u většiny Rollup Updatů a Service Packů.
První věc je, že bychom neměli využít automatických aktualizací, ale instalovat ručně a pod administrátorským oprávněním. Takže buď vypneme UAC nebo spustíme CMD jako Administrator a z něj spustíme instalační msp soubor.
Při instalace Update Rollup 2 for Exchange Server 2010 Service Pack 1 (KB2425179) může instalace skončit s chybou 80070643. Navíc, když se podíváme do služeb, tak nám neběží žádná Exchange služba, ale ani řada dalších. Dokonce jsou přepnuté na Disabled.
Pokud spustíme instalaci updatu znovu, tak skončí s chybou již na začátku, kdy se snaží vypnout služby. Abychom se dozvěděli více o průběhu instalace, tak můžeme zapnout logování.
C:\1\Exchange2010-KB2425179-x64-en.msp /lvx c:\1\exchlog.log
Problém, který může nastat je popsaný v článku You receive error 1603 when you try to install the Exchange Server 2010 RU1 (i když se týká jiné verze a nemusí odpovídat číslo chyby, tak je stále stejný). Jde o to, že před instalací Rollup Updatu nesmí být na serveru nastavena, musí být Undefined
, PowerShell Execution Policy pro MachinePolicy a UserPolicy.
Pozn.: U SP2 platí to samé, co jsem zmiňoval u Rollup Update. PowerShell Execution Policy pro MachinePolicy a UserPolicy musí být nastavena na Undefined.
Pokud nám již instalace selhala, tak musíme nejprve nastartovat službu Windows Management Instrumentation (a případně ještě World Wide Web Publishing Service a Remote Registry). Potom můžeme použít PowerShell a zjistit nastavení Execution Policy.
[PS] C:\>Get-ExecutionPolicy -List Scope ExecutionPolicy ----- --------------- MachinePolicy RemoteSigned UserPolicy Undefined Process Undefined CurrentUser Undefined LocalMachine RemoteSigned
Pokud máme na prvních dvou řádcích něco jiného než Undefined (jako v příkladu výše), tak musíme toto nastavení změnit. Položky pro CurrentUser a LocalMachine můžeme měnit pomocí příkazu Set-ExecutionPolicy
(nebo třeba v registrech), ale položky MachinePolicy a UserPolicy můžeme nastavit pouze pomocí Group Policy. Pokud, jako zde, máme MachinePolicy na hodnotu RemoteSigned, tak by to mělo znamenat, že v nějakém GPO aplikovaném na server, máme povoleno spouštění skriptů, jde o nastavení Computer/Policies/Administrative Templates/Windows Components/Windows PowerShell/Turn on Script Execution
. Dočasně musíme tuto hodnot změnit (nastavit na Not Configured
) a počkat/vynutit aplikaci politik. Pak můžeme spustit PowerShell skript, který nám nastartuje služby Exchange.
PS C:\Program Files\Microsoft\Exchange Server\V14\Bin>ServiceControl.ps1 AfterPatch
Potom můžeme znovu spustit update a po úspěšné instalaci můžeme vrátit původní nastavení Execution Policy.
Celá instalace updatu trvá velice dlouho (třeba 40 minut).
Poškozený Exchange server
Na jednom čerstvě nainstalovaném Exchange serveru jsem narazil na fatální problém. Instalace proběhla OK, ale když jsem po restartu chtěl instalovat SP2, tak jsem hned po začátku instalace dostal chybovou hlášku.
The previous installation path could not be found in the registry. Only disaster recovery mode is available. The previously installed version could not be determined from the registry. Only disaster recovery mode is available.
Zjistil jsem, že v instalaci Exchange serveru chybí řada souborů, neexistují zástupci ve Startu ani není položka v Programs and Features pro odinstalaci (on si je instalátor na začátku odstraňuje). Zkusil jsem řadu věcí, ale nic nepomáhalo. Takže jsem nakonec provedl proceduru Recover Exchange. Tento proces je popsaný v článku Recover an Exchange Server. Obecně, pokud se nám třeba poškodí HW serveru, kde je nainstalovaný Exchange. Tak můžeme připravit čistý stejný OS se stejným jménem a disky a provést instalaci dle původních parametrů (které jsou uloženy v AD).
Setup.com /m:RecoverServer
Jenže ani toto nepomohlo a dostával jsem následující chybu.
C:\>SETUP.COM /m:RecoverServer Welcome to Microsoft Exchange Server 2010 Unattended Setup Setup will continue momentarily, unless you press any key and cancel the installation. By continuing the installation process, you agree to the license terms of Microsoft Exchange Server 2010. If you don't accept these license terms, please cancel the installation. To review the license terms, please go to http://go.microsoft.com/fwlink/?LinkId=150127&clcid=0x409/ Press any key to cancel setup................ No key presses were detected. Setup will continue. Preparing Exchange Setup Copying Setup Files COMPLETED The following server roles will be recovered Languages Hub Transport Role Client Access Role Unified Messaging Role Mailbox Role Management Tools Performing Microsoft Exchange Server Prerequisite Check Configuring Prerequisites COMPLETED Language Pack Checks COMPLETED Hub Transport Role Checks COMPLETED Client Access Role Checks COMPLETED Unified Messaging Role Checks COMPLETED Mailbox Role Checks COMPLETED Configuring Microsoft Exchange Server Preparing Setup COMPLETED Stopping Services COMPLETED Copying Exchange Files COMPLETED Language Files COMPLETED Restoring Services COMPLETED Languages COMPLETED Hub Transport Server Role FAILED The following error was generated when "$error.Clear(); if ($exsSid -eq $null -or $exsSid -eq "") { $exsSid = get-ExchangeServerGroupSID -DomainController $RoleDomainController } start-setupservice -ServiceName MSExchangeADTopology -ServiceParameters $exsSid,$RoleDomainController " was run: "Service 'MSExchangeADTopology' failed to reach status 'Running' on this server.". The Exchange Server setup operation didn't complete. More details can be found in ExchangeSetup.log located in the <SystemDrive>:\ExchangeSetupLogs folder. Exchange Server setup encountered an error.
Podle informací v logu C:\ExchangeSetupLogs\ExchangeSetup.log
jsem zjistil, že účet tohoto Exchange serveru chybí ve skupině Exchange Servers. Doplnil jsem jej ručně a spustil znovu instalaci, ale zobrazovala se následující chyba.
C:\>SETUP.COM /m:RecoverServer Welcome to Microsoft Exchange Server 2010 Unattended Setup Preparing Exchange Setup Copying Setup Files COMPLETED The following server roles will be recovered Languages Hub Transport Role Client Access Role Unified Messaging Role Mailbox Role Management Tools Performing Microsoft Exchange Server Prerequisite Check Configuring Prerequisites COMPLETED Language Pack Checks FAILED A Setup failure previously occurred while installing the HubTransport role. Either run Setup again for just this role, or remove the role using Control Panel. The Exchange Server setup operation didn't complete. More details can be found in ExchangeSetup.log located in the <SystemDrive>:\ExchangeSetupLogs folder. Exchange Server setup encountered an error.
Instalace poprvé skončila na roli Hub Transport, takže ta byla ve stavu rozinstalováno. Naštěstí se dá tento stav změnit úpravou registrů. Stačí v registrech smazat položky Watermark and Action v cestě HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ExchangeServer\v14\HubTransportRole
. Pak již instalace Exchange serveru proběhla úspěšně. A povedla se i instalace Service Pack 2 (zdůrazňuji, že musí být PowerShell Execution Policy nedefinováno, viz výše).
Assign certificate - Insufficient access rights
Na stejném serveru, kde jsem měl minulý problém, jsem narazil na další. Když jsem přidal nový certifikát a chtěl jsem jej přiřadit na všechny služby. Dostával jsem chybovou hlášku:
Error: Active Directory operation failed on dc.firma.local. This error is not retriable. Additional information: Insufficient access rights to perform the operation. Active directory response: 00002098: SecErr: DSID-03150BB9, problem 4003 (INSUFF_ACCESS_RIGHTS), data 0 Exchange Management Shell command attempted: Enable-ExchangeCertificate -Server 'MAIL3' -Services 'IMAP, POP, IIS, SMTP' -Thumbprint '8E5FAB47D1EDD721299476'
Po nějakém hledání jsem zjistil, že účet tohoto Exchange serveru chybí ve skupině Exchange Trusted Subsytem. Po té, co jsem jej zařadil do skupiny a restartoval server, se již podařilo nastavit certifikát.
Update Rollup 1 pro Exchange 2010 SP2
Než jsem stihl zveřejnit tento článek, tak se objevil nejen SP2, ale už i SP2 RU1. K tomu uvedu pouze dvě poznámky.
Než začneme tento update instalovat, tak je třeba dobře zvážit jednu věc. Pokud máme více Exchange serverů a třeba pro OWA využíváme CAS-CAS Proxy, tak musíme RU1 instalovat na oba ve stejnou dobu, jinak nebude fungovat. A uživatelům se bude zobrazovat chyba.
Exception type: Microsoft.Exchange.Clients.Owa.Core.OwaAsyncOperationException Exception message: ProxyProtocolRequest async operation failed
Více je zmíněno například v článku Exchange 2010 SP2 RU1 and CAS-to-CAS Proxy Incompatibility.
Druhá věc se týká verze Exchange serveru. Po instalaci tohoto updatu by měl být server ve verzi 14.2.283.3
, ale v EMC nebo na příkaz Get-ExchangeServer
se zobrazuje verze 14.2.247.5
(což je stejná, jako byla před instalací). Jde o Admin Display Version a skutečnou verzi zjistíme příkazem.
Get-Command EXSetup | %{$_.FileVersionInfo}
Více informací o verzích nalezneme v článku Retrieving Exchange version information.
Nefunkční připojení na EMC a EMS
Po nějaké době provozu se mi najednou objevil problém na jednom Exchange serveru, kde se nedalo spustit/připojit na EMC ani EMS a oba vraceli chybové hlášení:
[exch1.firma.local] Connecting to remote server failed with the following error message : The WS-Management service cannot process the request. The system load quota of 1000 requests per 2 seconds has been exceeded. Send future requests at a slower rate or raise the system quota. The next request from this user will not be approved for at least 1914534912 milliseconds. For more information, see the about_Remote_Troubleshooting Help topic. + CategoryInfo : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [], PSRemotingTransportException + FullyQualifiedErrorId : PSSessionOpenFailed
Zkontroloval jsem služby a vše vypadlo v pořádku. Exchange 2010 se připojuje k managementu vzdáleně, i když je spuštěn lokálně, tak jsem hledal chybu v komunikaci. Na internetu je tato chyba často probírána, ale uváděná řešení se mi nechtělo zkoušet. Tak jsem se podíval do Windows Feature, že není nainstalována WinRM IIS Extension. Tak jsem ji přidal a vše začalo fungovat. Zajímavé je, že na jiném Exchange serveru také není nainstalována a vše chodí.
Komentáře
Zatím tento záznam nikdo nekomentoval.