MailboxSearch i AdminAuditLog nie działa, 403 na EWS i 400 w konsoli

MailboxSearch i AdminAuditLog nie działa, 403 na EWS i 400 w konsoli

Pewnego pięknego dnia nabrałem ochoty, aby z poziomu ECP sprawdzić Admin Audit Log w celu namierzenia gagatka, który zawalił konfigurację.
Niestety przywitał mnie komunikat błędu mówiący, że jednak nie da rady.
Niewiele później, musiałem przeszukać zawartość jednej ze skrzynek, ale tu zaś przywitał mnie błąd 403 ze strony EWS.

Errors:
Export failed with error type: 'FailedToSearchMailboxes'. Details: The request failed with HTTP status 403: Forbidden. Endpoint: https://e01.domena.pl:444/EWS/Exchange.asmx HttpContext:
X-AnchorMailbox:[email protected]
client-request-id:2ea41e19-befe-4228-848e-a4a1d97c123
X-DiagInfo: E01
X-BEServer: E01
Content-Length: 0
Date: Fri, 31 Jan 2025 09:23:45 GMT
Server: Microsoft-IIS/10.0
X-Powered-By: ASP.NET

W Eventviewerze, w dzienniku MSExchange Management namierzyłem błędy ze źródła MSExchange CmdletLogs o EventId 6. Oto przykłady:

Cmdlet failed. Cmdlet Search-MailboxAuditLog, parameters -StartDate "2/6/2025 12:00:00 AM" -EndDate "2/23/2025 12:00:00 AM" -LogonTypes ("Admin") -ExternalAccess "False" -Identity "Jan Kowalski" -ResultSize "501".

lub

Cmdlet failed. Cmdlet New-MailboxSearch, parameters -Name "sdfsd" -StartDate "2/19/2025 11:00:00 PM" -SourceMailboxes ("Janina Kowalska") -EstimateOnly "True".

Kolejnym krokiem, była próba wykonania poleceń z konsoli EMS

New-MailboxSearch -Name "sdfsd" -StartDate "2/19/2025 11:00:00 PM" -SourceMailboxes ("Janina Kowalska") -EstimateOnly

The request failed. The remote server returned an error: (400) Bad Request.
    + CategoryInfo          : NotSpecified: (:) [], DataSourceOperationException
    + FullyQualifiedErrorId : [Server=E01,RequestId=436aeecc-392a-401e-b03c-cdacef12345,TimeStamp=2/21/2025 3:37:04
   PM] [FailureCategory=Cmdlet-DataSourceOperationException] 4F1A821C
    + PSComputerName        : e01.domena.pl

Dopiero ten komunikat pozwolił mi znaleźć rozwiązanie problemu na polskim, nieco zapomnianym blogu microsoftadmin.net. Co prawda, wpis odnosi się do Exchange 2016, ale... u mnie objawił się na Exchange 2019 CU 14. Ciekawe skąd...

Rozwiązanie

Wykonaj poniższe polecenie i sprawdź, czy problematyczny serwer nie ma ustawionego pola InternalNLBBypassUrl na niepustą wartość dla Virtual Directory o nazwie EWS (Default Web Site). U mnie było tak:

Get-WebServicesVirtualDirectory -ShowMailboxVirtualDirectories | fl identity, *url*


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

Identity             : e02\EWS (Default Web Site)
InternalNLBBypassUrl :
InternalUrl          : https://ex.domena.pl/EWS/Exchange.asmx
ExternalUrl          : https://ex.domena.pl/EWS/Exchange.asmx

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


Identity             : e01\EWS (Default Web Site)
InternalNLBBypassUrl : https://e01.domena.pl/ews/exchange.asmx
InternalUrl          : https://ex.domena.pl/EWS/Exchange.asmx
ExternalUrl          : https://ex.domena.pl/EWS/Exchange.asmx

Jak widzisz, dla e01\EWS (Default Web Site) właściwość InternalNLBBypassUrl ma wartość: https://e01.domena.pl/ews/exchange.asmx.

Czas zamienić ją na nulla.

Get-WebServicesVirtualDirectory "e01\EWS (Default Web Site)" | Set-WebServicesVirtualDirectory -InternalNLBBypassUrl $null

I to w sumie tyle. Po tej zmianie wszystko wróciło do normy, a ja znów mogę znajdować winowajców wszystkich zepsutych konfiguracji!