Merhaba; bu yazımda sizlere birçok IT Pro’ nun dağınık mimarili Exchange organizasyonlarında kullanabileceği Offline Adress Book, Global Address List, Room List gibi listelerin nasıl Accepted Domainlere dağıtılacağını ve Address Book Policy ile bu listelerin sadece kendi domainlerinde görüntülenebilmesinin adımlarını paylaşacağım.

Bu özellik, Exchange Server 2010 SP2 ile beraber gelmiştir. Dağınık mimarilere sahip Exchange organizasyonları için oldukça gerekli ve önemli bir yeniliktir. Şöyle düşünelim, Bölge, şube, veya birim bazlı ayrı adres defteri kullanmak veya görmek isteyen servisler için Address Book Policy ABP bizlere yardımcı olabilir. Aslında ABP’ nin yaptığı işlem “Global address list (GAL) segmentation” veya “GAL segregation” da olarak bilinen herkes için tek olan ve tüm şirket çalışanlarını gösteren bu adres defterini segmentlere ayrımaya yarar. Yine benzer bir şekilde tek bir Exchange Server mimarisi üzerinden hosting hizmeti sunuyor ancak Exchange Server kurulumu sırasında hosting komut setini kullanmamış iseniz, bu yeni özellik ayrıca müşterilerinizin birbirlerinin mail adreslerini de görmesini engelleyecektir.

Konu hakkında daha fazla bilgi için aşağıdaki linki inceleyebilirsiniz.

http://technet.microsoft.com/en-us/library/hh529948%28v=exchg.150%29.aspx

Aslında GAL Segregation işlemini Exchange Server 2007’ den beri yapabiliyorduk ancak bu işlem için Query Base DN veya Access Control Lists (ACLs) kullanıyorduk. Bu işlem ciddi efor gerektiren yöntemdi. Artık Address Book Policy ile bunu kolaylıkla yapabiliriz.

Önemli bir not ise ABP kullanmak için bazı işlemler yapmamız gerekmekte. ABP’ nin Exchange sunucularda aktif olması ve bu özelliği kullanmak isteyen kullanıcı mailbox’ ları minumum Exchange 2013 CU5 yüklü bir mailbox sunucularında barındırılıyor olması zorundadır. Diğer bir önemli not ise Address Book Policy kullanmak istiyorsak Hierarchical Address Book (HAB) özelliği devre dışı olmalıdır. Exchange Server Global Catalog olan bir Domain Controller üzerinde yüklü ise bu özellik kullanılamaz.

Ayrıca; LDAP erişimleri olmayan ürünlerden olan Outlook for Mac ve Entourage bu özelliği kullanamamaktadır. Nedeni ise şirket networklerine bağlı bu iki yazılım Microsoft Exchange Address Book service yerine direk olarak Global Catalog üzerinden Active Directory’ ye sorgu yapmaktadır. Fakat Outlook for Mac 2011 eğer internet üzerinden bağlantı kuruyor ise OAB veya Exchange Web Services (EWS) lerine bağlanabildiği için kendisine atanan Address Book Policy’ leri GAL bazlı olarak alabilmektedir.

Yapı nasıl çalışır?

Address Book Policy aşağıdaki bileşenlerden oluşur;

  • Bir adet GAL
  • Bir adet OAB
  • Bir adet Room list
  • Bir veya daha fazla Address Lists



Şemada görüldüğü gibi şirket organizasyonu içerisinde birden fazla GAL, Room Address List, Offline Address Book ve Address List’ ler olabilir.




Benim yapım aşağıda ki gibidir.

DAG Yapılı ve 2 Accepted Domainli bir organizasyona sahibim.

Accepted Domainlerim;

  • Msexchangetr.org
  • Get-ExchangeServer.com

Email Address Policies ile user aliaslara göre mail adreslerimi dağıttım.

Active Directory üzerinde 2 Adet OU’ um mevcut.

MsExchangetr.org ve Get-Exchangeserver OU’larımın isimleri. OU’ ların içerisinde userlarım hazır durumda.





Exchange ECP üzerinde bakarsak;




Accepted Domainlerim:




Ben bu işlemleri PowerShell üzerinden gerçekleştireceğim. Exchange 2010 SP2 sonrası GUI üzerinden yapabiliyorduk.

MsExchangetr Accepted Domainim için PowerShell komutlarımızı çalıştıralım.

MsExchangetr isminde bir Address List oluşturuyorum. Filtre bölümünde ise Office bilgisinde “MsExchangetr” yazan kullanıcıların görüntülenmesini sağlıyorum.



İlk komutumuz:

New-AddressList -Name "MsExchangeTR - Address List" -RecipientFilter {((RecipientType -eq 'UserMailbox') -or (RecipientType -eq "MailUniversalDistributionGroup") -or  (RecipientType -eq "DynamicDistributionGroup")) -and (Office -eq "MsExchangeTR")}



İkinci Komutumuz:

New-AddressList -Name "MsExchangeTR - Room List" -RecipientFilter {((Alias -ne $null) -and (CustomAttribute1 -eq "MsExchangeTR") -and ((RecipientDisplayType -eq 'ConferenceRoomMailbox') -or (RecipientDisplayType -eq 'SyncedConferenceRoomMailbox')))}



Üçüncü Komutumuz:

New-GlobalAddressList -Name "MsExchangeTR - Global Address List" -RecipientFilter {(Office -eq "MsExchangeTR")}



Dördüncü komutumuz:

New-OfflineAddressBook -Name "MsExchangeTR - Offline Address List" -AddressLists "MsExchangeTR - Address List"



Beşinci Komutumuz:

New-AddressBookPolicy -Name "MsExchangeTR - ABP" -AddressLists "\MsExchangeTR - Address List" -OfflineAddressBook "\MsExchangeTR - Offline Address List" -GlobalAddressList "\MsExchangeTR - Global Address List" -RoomList "\MsExchangeTR - Room List"


Altıncı komutumuz:

Bu komut ile Office kısmında MsExchangeTR yazan bütün userlara MsExchangeTR – ABP Address Book Policy’ yi mailboxlara otomatik atayabiliyoruz.

Get-Mailbox | where {$_.Office -eq "MsExchangeTR"} | Set-Mailbox -AddressBookPolicy "MsExchangeTR - ABP"




Address Book Policy kısmına yazdığımız ABP otomatik eklendi. Tabi bunu elle’ de yapabilirsiniz ancak yüzlerce userınız olduğunu düşünürsek hayal dahi etmezsiniz J

Daha önce de belirttiğim gibi 2 Accepted Domainim vardı.

Get-ExchangeServer  Accepted Domainim için PowerShell komutlarımızda aşağıda ki gibidir.
Komutlarımız:

1-)

New-AddressList -Name "Get-Exchangeserver - Address List" -RecipientFilter {((RecipientType -eq 'UserMailbox') -or (RecipientType -eq "MailUniversalDistributionGroup") -or (RecipientType -eq "DynamicDistributionGroup")) -and (Office -eq "Get-Exchangeserver")}

2-)

New-AddressList -Name "Get-Exchangeserver - Room List" -RecipientFilter {((Alias -ne $null) -and (CustomAttribute1 -eq "Get-Exchangeserver") -and ((RecipientDisplayType -eq 'ConferenceRoomMailbox') -or (RecipientDisplayType -eq 'SyncedConferenceRoomMailbox')))}

3-)

New-GlobalAddressList -Name "Get-Exchangeserver - Global Address List" -RecipientFilter {(Office -eq "Get-Exchangeserver")}

4-)

New-OfflineAddressBook -Name "Get-Exchangeserver - Offline Address List" -AddressLists "Get-Exchangeserver - Address List"

5-)

New-AddressBookPolicy -Name "Get-Exchangeserver - ABP" -AddressLists "\Get-Exchangeserver - Address List" -OfflineAddressBook "\Get-Exchangeserver - Offline Address List" -GlobalAddressList "\Get-Exchangeserver - Global Address List" -RoomList "\Get-Exchangeserver - Room List"

6-) Bu komut Office kısmında Get-Exchangeserver yazan bütün userlara Get-Exchangeserver – ABP Address Book Policy’ yi mailboxlara otomatik atar.

Get-Mailbox | where {$_.Office -eq "Get-Exchangeserver"} | Set-Mailbox -AddressBookPolicy "Get-Exchangeserver - ABP"


Bu işlemlerin ardından Exchange ECP üzerinden Address Listimizi gözlemleyelim. Görüldüğü üzere Get-ExchangeServer ve MsExchangeTR için Address listler, GAL’ler ve Room Listler sorunsuz oluşmuş.

Bütün bu işlemlerin sonunda aşağıda ki komutlar ile bütün Adres listelerimizi Up to date etmemiz gerekir.

Get-offlineaddressbook | Update-OfflineAddressBook

Get-GlobalAddressList | Update-GlobalAddressList


Kullanıcı tarafına yansımaları görmeden önce mutlaka aşağıda ki kontrolleri yapalım. MsExchangeTR ve Get-Exchangeserver için oluşturulan bütün listelerde atanmış userların mail adreslerini görmemiz gerekir.

Exchange Admin Center > Organization > Address Lists > Default Global Address List > Edit > Preview recipients the address list includes


Şimdi Outlook ve Owa tarafında userların Adress Listelerini kontrol edelim.

MsExchangeTR.org domaini kullanıcısına göz atalım.

Kullanıcı: ufuk.tatlidil@msexchangetr.org

Outlook:


cp@get-exchangeserver.com adresine mail atmak için check names yapalım sonucu görelim.

Check Names dahi yapmaz.

OWA:


Outlook ve Owa tarafında userların Adress Listelerini kontrol edelim.

Get-ExchangeServer.com domaini kullanıcısına göz atalım.

Kullanıcı: cp@get-exchangeserver.com

Outlook:


ufuk.tatlidil@msexchangetr.org
 adresine mail atmak için check names yapalım sonucu görelim. Yine Check Names yapmıyor.




OWA:



Peki, bu kişiler nasıl contactlarında birbirlerini görecekler? Outlook üzerinde kendi contact listelerine ilgili kişileri eklemeleri yeterli olacaktır. Daha sonra Check Names aktif olarak çalışacaktır.

Umarım faydalı olmuştur.