Naprawa opcji logowania do witryn OWA i ECP na serwerze Echange 2013/2016/2019

Podczas instalacji nowych Cumulative Update dla serwera pocztowego Exchange pełniąego rolę "Mailbox Server" zdarza się, że może dojść to zmainy ustawień formatu lub metod uwierzytelniania. Objawia się to brakiem domyślnej szaty startowej dla strony Outlook w sieci Web (dawniej znany jako Outlook Web App lub Outlook Web Access) dostępnej pod domyślnym adresem https://mail.domena.pl/owa lub dla strony panelu Centrum administracyjne programu Exchange (ang. Exchange Control Panel) dostępnej pod domyślnym adresem https://mail.domena.pl/ecp. Zdjęcia numer 1 i 2 ukazują domyślną szatę graficzną dla wymienionych stron w polskiej wersji językowej.

Działająca poprawnie strona logowania do Outlook w sieci Web Zdjęcie 1. Działająca poprawnie strona logowania do Outlook w sieci Web na serwerze MS Exchange 2016

W przypadku zmiany ustawień metody uwierzytelniania spodowdowanej przez instalację poprawki Cumulative Update, po wejściu na stronę owa lub ecp nie pojawia się szata graficzna. Na czystej stronie www wyskakuje tylko okienko logowania. Brak w nim informacji o wzorcu logowania Domena\Nazwa użytkownika lub Nazwa użytkownika. Pokazane to zostało na zdjęciu nr 3. Próba zalogowania się przy pomocy Domena\Nazwa użytkownika powinna zakończyć się sukcesem, ale dla zwykłego użytkownika może nie być to takie oczywiste i wzbudzić konsternację. Podobnie sytuacja będzie wyglądać w przypadku logowania na strony Centrum administracyjne programu Exchange (ang. Exchange Control Panel).

Trudniejszym przypadkiem jest sytuacja, w której wwogóle nie można zalogować się do żadnej z witryn. W takiej sytuacji należy sprawdzić metody uwierzytelniania dla wirtualnych katalogów w witrynie Default Web Site w usłudze IIS. Wykaz poprawnych uprawnień dla poszczególnych katalogów opisanych został na stronach Microsoft Docs. W rozpatrywanym przypadku interesują nas upraweniania katalogów OWA i ECP. Podgląd przypisanych im metod uwierzytelniania możemy wykonać przy użyciu konsoli Internet Information Services (IIS) Manager. Zmian w uprawnieniach dokonać jednak należy przy użyciu poleceń PowerShell Set-OwaVirtualDirectory i Set-EcpVirtualDirectory.

Działająca poprawnie strona logowania do Centrum administracyjne programu Exchange Zdjęcie 2. Działająca poprawnie strona logowania do Centrum administracyjne programu Exchange na serwerze MS Exchange 2016.

Metoda 1
W pierwszej kolejności należy zalogować się na stronę Centrum administracyjne programu Exchange przy użyciu uprawnień administratora serwera Exchange. Następnie należy przejść do opcji: serwery > katalogi wirtualne > owa (Default Web Site). Z menu wybrać opcję Edycja > uwierzytelnianie. Z dostępnych opcji należy wybrać jedną z opcji udostępnianych w sekcji Stosuj uwierzytelnianie wykorzystujące formularze Format logowania:. Najbardziej zalecanym ustawieniem jest wybór opcji Domena\Nazwa użytkownika. Takie same ustawienia należy wykonać dla katalogu wirtualnego ecp (Default Web Site). Po wprowadzeniu ustawień należy wykonać polecenie w konsoli PowerShell lub Command Prompt: iisreset /noforce. Polecenie może zakończyć się niepowodzeniem zwracając komunikat "The service did not respond to the start or control request in a timely fashion. (2147943453, 8007041d)". W takiej sytuacji należy odczekać 3, 5 minut i ponownie wykonać powyższą komendę aż do uzyskania komunikatu:
Internet services successfully stopped
Attempting start...
Internet services successfully restarted


Działająca poprawnie strona logowania do Centrum administracyjne programu Exchange Zdjęcie 3. Strona logowania do Outlook w sieci Web przy zmienionych metodach uwierzytleniania spowodowanych instalacją poprawki Cumulative Update (CU).

Ponowne otwarcie strony https://mail.domena.pl/owa lub https://mail.domena.pl/ecp powinno zakończyć się sukcesem. Jeżeli tak się nie stanie należy sprawdzić czy w ustawieniach wirtualnych katalogów owa (Default Web Site) i ecp (Default Web Site) w polu ogólne > Wewnętrzny adres URL i ogólne > Zewnętrzny adres URL ustawiony został poprawny adres DNS, który domyślnie powinien mieć odpowiednio postać https://mail.domena.pl/owa i https://mail.domena.pl/ecp (Zdjęcie 4). Często zdaża się bowiem, że podczas instalacji poprawki CU pola te zostają zmienione na wewnętrzne adresy DNS serwera pocztowego np.: exch1.msfa.domena.pl. Wprowadzenie poprawnych adresów DNS musi być zakończone restertem usługi IIS przy użyciu komendy iisreset /noforce.

W sytuacji gdy powyższe zmiany konfiguracyjne nie przyniosły zamierzonych rezultatów lub jeżeli po wykonaniu opcji logowania pojawia się błąd typu Something went wrong Your request couldn't be completed. HTTP Status code: 500.należy wykonać bardziej zaawansowane zmiany polegające na odbudowaniu konfiguracji katalogów wirtualnych OWA i ECP lub nawet na usunięciu wirtualnych folderów OWA i ECP i ich ponownego utworzenia. Wymagane będzie także ponowne określenie metod uwierzytelniania. Metoda 2
W celu odbudowania katalogów wirtualnych ECP i OWA i ich poprawnej konfiguracji, bazującej na ostatnich aktualizacjach aplikacji Microsoft Exchange, należy wykorzystać dostarczony przez producenta skrypt UpdateCas.ps1 znajdującego się w lokalizacji:
c:\Program Files\\Microsoft\Exchange Server\V14\Bin dla serwera Exchange 2013
c:\Program Files\\Microsoft\Exchange Server\V15\Bin dla serwera Exchange 2016
c:\Program Files\\Microsoft\Exchange Server\V16\Bin dla serwera Exchange 2019

Poprawne wpisy adresów DNS w polach Wewnętrzny adres URL i Zewnętrzny adres URL Zdjęcie 4. Poprawne wpisy adresów DNS w polach Wewnętrzny adres URL i Zewnętrzny adres URL.

Skrypt najlepiej uruchomić z poziomu wbudowanego edytora skryptów PowerShell ISE z uprawnieniami administrator. Pozwoli to na czytelniejszy przegląd wykonywanych w skrypcie poleceń.
Po zakończeniu działania skryptu należy ponownie uruchomić usługę Internet Information Services przy użyciu komendy iisreset /noforce.

Kolejnym krokiem może być zmiana metody logowania opisana w metodzie nr 1, gdyż po użycie skryptu UpdateCas.ps1 dokona zresetowania ustawień metody logowania do witryny ECP i OWA i przywróci metodę logowania przy użyciu systemowego okienka logowania pokazanego na zdjęcu nr 3.

Wykorzystując zmianę konfiguracji, opisanej w metodzie nr 1, można to zmienić na metodę uwierzytelniania w oparciu o formularz z wzorcem Domena\Nazwa użytkownika.

Metoda 3
Trzecia metoda jest najbardziej zaawansowana i należy z nij skorzystać, gdyby wcześniejsze dwie zawiodły. W pierwszej kolejności dokonujemy zapisu konfiguracji wirtualnych katalogów OWA i ECP witryny Default Web Site usługi IIS na serwerze Exchange pełniącego rolę "Mailbox Server". W tym celu wykonujemy polecenie Powershell w konsoli Exchange Management Shell:
Get-OwaVirtualDirectory -Server Exch1 | Format-List * | Out-File c:\Owa.txt
i
Get-EcpVirtualDirectory -Server Exch1 | Format-List * | Out-File c:\Ecp.txt

Następnie dokonujemy usunięcia wirtualnych katalogów zawierających konfigurację stron internetowych: Outlook w sieci Web (OWA) i Centrum administracyjne programu Exchange (ECP) przy użyciu komend:
Get-OwaVirtualDirectory -Server Exch1 | Remove-OwaVirtualDirectory
Get-EcpVirtualDirectory -Server Exch1 | Remove-EcpVirtualDirectory

Tworzymy nowe wirtualne katalogi przy użyciu komend PowerShell w konsoli Exchange Management Shell:
New-OwaVirtualDirectory -Server Exch1 -InternalUrl https://mail.domena.pl/owa -ExternalUrl https://mail.domena.pl/owa
New-EcpVirtualDirectory -Server Exch1 -InternalUrl https://mail.domena.pl/ecp -ExternalUrl https://mail.domena.pl/ecp

W kolejnym kroku należy określić metody uwierzytelniania dla powyższych katalogów wirtualnych. Dokonujemy tego poleceniami:
Get-EcpVirtualDirectory -Server Exch1 | Set-EcpVirtualDirectory -FormsAuthentication $False -BasicAuthentication $False -WindowsAuthentication $True
Get-owaVirtualDirectory -Server Exch1 | Set-owaVirtualDirectory -FormsAuthentication $False -BasicAuthentication $False -WindowsAuthentication $True
zgodnie z informacjami zawartymi w artykule KB2778897. Następnie należy wykonać wszystkie kroki opisane w metodzie 1.

Jeżeli powyższe kroki nie rozwiązały problemu należy dodatkowo zaktualizować uprawnienia dotyczące wirtualnych katalogów wchodzących w skład witryny Exchange Back End. Używamy do tego polecenia PowerShell dla wirtualnego katalogu OWA wchodzącego w skład witryny Exchange Back End:
Set-OwaVirtualDirectory -Identity "Exch1\owa (Exchange Back End)" -WindowsAuthentication $True -Basicauthentication $False -Formsauthentication $False
i ponownie uruchamimy usługę IIS poleceniem iisreset /noforce.
W kolejnym kroku należy uruchomić konsolę PowerShell z uprawnieniami administratora i wykonać poniższe polecenia:
Add-PSSnapin *exchange*
Set-EcpVirtualDirectory -Identity "Exch1\ecp (Exchange Back End)" -WindowsAuthentication $True -Basicauthentication $False -Formsauthentication $False
iisreset /noforce

Należy zwrócić uwagę, że wymagana jest tu czysta konsola PowerShell. Wykonanie powyższych poleceń w konsoli Exchange Management Shell zakończy się niepowodzeniem. Jest to zaplanowane działanie, gdyż Microsoft nie zaleca dokonywania jakichkolwiek zmian na witrynie Exchange Back End.

Przy użyciu polecenia PowerShell:
Get-WebServicesVirtualDirectory -Server Exch1 -ShowMailboxVirtualDirectories | Format-List Identity, *URL*
należy sprawdzić czy wartość pola InternalNLBBypassUrl jest postaci https://exch1.msfa.domena.pl:444/ews/exchange.asmx. Ważnym elementem tego adresu DNS jest numer portu postaci 444. Poniższy wynik polecenia ukazuje prawidłową konfigurację adresów Url dla wirtualnych katalogów EWS w witrynach Exchange Back End i Default Web Site.

Identity : Exch1\EWS (Exchange Back End)
InternalNLBBypassUrl : https://exch1.msfa.domena.pl:444/ews/exchange.asmx
InternalUrl :
ExternalUrl :

Identity : Exch1\EWS (Default Web Site)
InternalNLBBypassUrl : https://exch1.msfa.domena.pl/ews/exchange.asmx
InternalUrl : https://mail.domena.pl/EWS/Exchange.asmx
ExternalUrl : https://maul.domena.pl/ews/exchange.asmx

Jeżeli wartość pola InternalNLBBypassUrl jest błędna należy skorygować wpis poniższymi poleceniami uruchamianymi w konsoli PowerShell:
Add-PSSnapin *exchange*
Set-WebServicesVirtualDirectory -Identity "Exch1\EWS (Exchange Back End)" –InternalNLBBypassUrl "https://exch1.msfa.domena.pl:444/ews/exchange.asmx"


Jeżeli zmiany opisane w metodzie nr 2 nie pomogły należy wykonać operację usunięcia wirtualnych katalogów OWA i ECP w witrynie Exchange Back End. W tym celu należy wykonać poniższe polecenia w konsoli PowerShell:
Add-PSSnapin *exchange*
Remove-WebApplication -Site "Exchange Back End" -Name owa
Remove-WebApplication -Site "Exchange Back End" -Name ecp
dla serwera Exchange 2013
New-WebApplication -Site "Exchange Back End" -Name owa -PhysicalPath "C:\Program Files\Microsoft\Exchange Server\V14\ClientAccess\owa" -ApplicationPool MSExchangeOWAAppPool
New-WebApplication -Site "Exchange Back End" -Name ecp -PhysicalPath "C:\Program Files\Microsoft\Exchange Server\V14\ClientAccess\ecp" -ApplicationPool MSExchangeECPAppPool

dla serwera Exchange 2016
New-WebApplication -Site "Exchange Back End" -Name owa -PhysicalPath "C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\owa" -ApplicationPool MSExchangeOWAAppPool
New-WebApplication -Site "Exchange Back End" -Name ecp -PhysicalPath "C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\ecp" -ApplicationPool MSExchangeECPAppPool

dla serwera Exchange 2019
New-WebApplication -Site "Exchange Back End" -Name owa -PhysicalPath "C:\Program Files\Microsoft\Exchange Server\V16\ClientAccess\owa" -ApplicationPool MSExchangeOWAAppPool
New-WebApplication -Site "Exchange Back End" -Name ecp -PhysicalPath "C:\Program Files\Microsoft\Exchange Server\V16\ClientAccess\ecp" -ApplicationPool MSExchangeECPAppPool

i ponownie uruchamiamy usługę IIS poleceniem iisreset /noforce.

Dodatkowe informacje:
- Microsoft Docs: Default settings for Exchange virtual directories
- Exchange Database Recovery: HTTP 404 –Exchange Server 2016 Admin Center Error
- Microsoft Technet: Setting Backend Exchange 2013/2016 Virtual Directory
- TheITBros.com: How to Recreate Virtual Directories OWA and ECP on Exchange 2016
- Microsoft Support: KB4058383