Exchange Server Offline Address Book ve diğer erişim sorunları için logların izini sürmek olmazsa olmaz. Bu yazımızda Outlook kullanan clientların Offline Address Book indirme adımlarında yaşadıkları sorun ve çözümü için kontrol edilebilecek aksiyonları ele alacağız.
Keşif
Logları toplamak adına kullanacağımız bir test clienti ile OAB indirme işlemini deniyoruz. Bu hata ekranı ile server tarafında daha anlaşılabilir log oluşmasını bekliyoruz.
Resim-1
Server üzerinden OAB log dizinine erişiyor ve testi yaptığımız zaman dilimini içeren log dosyasını açıyoruz. İstersek bu logları CSV formatında olduğu için excel ile daha okunabilir hale getirebiliriz.
%ExchangeInstallPath%Logging\HttpProxy\OAB\
Yine aynı log dosyasında saat aralığına göre incelemeye devam edebilir ya da testi gerçekleştirdiğimiz kullanıcı hesabına ait kullanıcı adı ile aratabiliriz.
2021-09-20T00:04:54.078Z,Oab,eposta.mshowto.org,/OAB/f8e39c7f-4829-4ee2-9ae6-772132ceasq/oab.xml,,Negotiate,true,mshowto\ugur.civak,192.168.1.201,EXCAS1,500,OrganizationMailboxNotFound
(Log satırı anlaşılabilir olması için kısaltılmıştır.)
Satırı inceleyelim, kullanıcının 500 hatası aldığını gördüğümüzde burada bir sorun olduğunu anlıyoruz. Satırı kontrol etmeye devam ettiğimizde OrganizationMailboxNotFound hata sonucunu görmekteyiz. Hatırlarsanız Exchange Server 2013 ile birlikte OAB generation işlemini arbitration mailbox sağlamaktadır. Hata sonucunu ve bu kavram ile düşündüğümüzde arbitration mailbox tarafında bir şeylerin ters gittiğini anlıyoruz.
Arbitration mailbox’ın kontrolünü sağlayalım. Her iki powershell kodundan biri kullanılabilir.
Get-Mailbox -Arbitration | where {$_.PersistedCapabilities -like “*OAB*”} | ft Name,Servername,Database
Get-mailbox -arbitration | select identity,persistedcapabilities | fl
Bu komut OAB generate eden arbitration mailboxının identity bilgilerini bize gösterecek.
PersistedCapabilities karşılığında OrganizationCapabilityOABGen değerine sahip olan identity sorumlu arbitration mailbox diyebiliriz.
Fakat bizim çıktımızda OrganizationCapabilityOABGen değerine sahip bir arbitration mailbox bulunmadığını doğruladık. Bu da log dosyasında gösterilen hata sonucunun nedeni olduğunu gösteriyor.
Çözüm
Exchange Serverin ilk kurulumunu hatırlayalım. Active Directory yapısının hazırlanması için yani Exchange objelerinin oluşturulmasında /PrepareAD çalıştırmıştık. Evet herhangi bir obje silindiyse kontrollü olmak şartıyla yine bu parametreden yararlanabiliyoruz. O zaman başlayalım.
- Exchange Server ISO’sunu tekrar servera ekliyor ve AD Objelerin oluşturulmasını sağlıyoruz.
E:\Setup.exe /IAcceptExchangeServerLicenseTerms /PrepareAD
Tamamlandığında SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c} user objesi oluşuyor.
- Oluşturulan user objesini arbitration mailbox olarak etkinleştirilmesini sağlıyoruz.
Enable-Mailbox -Identity "SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}" -Arbitration
- Mailbox’ın PersistedCapabilities değerine OAB generation ve diğer hakları veriyoruz.
Get-Mailbox "SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}" -Arbitration | Set-Mailbox -Arbitration -UMGrammar $true -OABGen $true -GMGen $true -ClientExtensions $true -MessageTracking $true -PstProvider $true -MaxSendSize 1GB -Force
$OABMBX = Get-Mailbox "SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}" -Arbitration; Set-ADUser $OABMBX.SamAccountName -Add @{"msExchCapabilityIdentifiers"="40","42","43","44","47","51","52","46"}
Bu işlemleri tamamlandıktan sonra tekrar test kullanıcısı ile kontrol ediyoruz.
Resim-2
Bu konuyla ilgili sorularınızı linkini kullanarak ulaşacağınız forum sayfamızda sorabilirsiniz.
Referanslar,
Recreate missing arbitration mailboxes | Microsoft Docs
TAGs: OrganizationMailboxNotFound, PersistedCapabilities, OrganizationCapabilityOABGen