Exchange Server 2010 SP2 ile beraber gelen ve dağınık mimarilere sahip Exchange organizasyonları için önemli bir yeniliktir. Bölge, şube, ekip veya birim bazlı ayrı adres defteri kullanmak veya görmek isteyen servisler için Address Book Policy ABP bizlere yardımcı olacaktır. 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. Tabiki bu son örnek sağlıklı bir mimari değildir. Yani amacınız Exchange üzerinden hosting hizmeti sunmak ise kurulumu buna göre yapmak çok daha doğru olacaktır.
Bu konuda daha fazla bilgi için aşağıdaki linki inceleyebilirsiniz
GAL segregation işlemi tabiki Exchange Server 2007’ den beri yapabiliyorduk ancak bu işlem için Query Base DN veya access control lists (ACLs) kullanıyorduk ve bu da bir hayli zor bir yöntemdi. Şimdi ise ABP ile bunu kolaylıkla yapabilmekteyiz.
Ancak ABP kullanmak için bazı şartlar bulunmaktadır.
Öncelikle bu özelliği kullanmak isteyen kullanıcı mailbox’ ları Exchange 2010 SP2 yüklü bir mailbox sunucularında barındırılıyor olmak zorundadır.
Ayrıca ABP kullanmak istiyorsak Hierarchical Address Book (HAB) özelliği devre dışı olmalıdır. Son limitasyon ise Exchange Server GC olan bir DC üzerinde yüklü ise bu özellik kullanılamaz.
Not ; Outlook for Mac ve Entourage LDAP erişimleri olmayan ürünler olduğu için bu özelliği kullanamamaktadır. Çünkü şirket networklerine bağlık 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 ABP’ leri GAL bazlı olarak alabilmektedir.
Not ; ABP office 365 üzerinde çalışmamaktadır. Bu nedenle hybrid bir deployment yapmanız halinde office 365 üzerindeki kullanıcılarınız tüm adres defterini segmentlere ayrılmamış olarak yani varsayılan biçimde görecektir.
Peki bu yapı nasıl çalışır ?
Her bir ABP aşağıdaki bileşenlerden oluşur;
· Bir adet GAL
· Bir adet OAB
· Bir adet room list
· Bir veya daha fazla address lists
Yukarıda görüldüğü gibi şirket organizasyonu içerisinde pek çok GAL, Room Address List, Offline Address Book ve Address List’ ler olabilir.
Örneğin benim senaryomda Rize ve Antalya olmak üzere temelde iki ana OU altında toplanmış bir mimari bulunmaktadır.
Ayrıca bu yapı için açmış olduğum GAL, OAB, Address List ve Room Address List ise aşağıdaki gibidir.
OAB’ ları yukarıda görebiliyoruz.
Burada ise GAL, Address List ve Room Address List’ leri görebiliyoruz.
Son olarak ise iki adet ABP tanımladım.
Gelelim Bunları nasıl yaptığıma, bunlar için aşağıdaki powershell komutlarını kullandım.
Rize için gerekli adımlar
Rize isminde bir address list oluşturuyorum. Filtre bölümünde ise ofis bilgisinde “Rize” yazan kullanıcıların görüntülenmesini sağlıyorum.
New-AddressList -Name "Rize – Address List" -RecipientFilter {((RecipientType -eq ‘UserMailbox’) -or (RecipientType -eq "MailUniversalDistributionGroup") -or (RecipientType -eq "DynamicDistributionGroup")) -and (Office -eq "Rize")}
“Rize – Room List” isminde bir Room Address List oluşturuyorum. CustomAttribute1 bölümünde “Rize” yazan Odaların ( Room ) görüntülenmesini sağlıyorum.
New-AddressList -Name "Rize – Room List" -RecipientFilter {((Alias -ne $null) -and (CustomAttribute1 -eq "Rize") -and ((RecipientDisplayType -eq ‘ConferenceRoomMailbox’) -or (RecipientDisplayType -eq ‘SyncedConferenceRoomMailbox’)))}
“Rize – Global Address List” isminde yeni bir GAL oluşturuyorum. Filtre bölümünde ise ofis bilgisinde “Rize” yazan kullanıcıların görüntülenmesini sağlıyorum.
New-GlobalAddressList -Name "Rize – Global Address List" -RecipientFilter {(Office -eq "Rize")}
“Rize – Offline Address List” isminde bir OAB oluşturuyorum ve bu Offline Address Book içerisine sadece “Rize – Address List” i ekliyorum.
New-OfflineAddressBook -Name "Rize – Offline Address List" -AddressLists "Rize – Address List"
Şimdi ise yeni bir ABP yapıyorum ve bu ABP içerisine yukarıdaki oluşturduğum Adres listelerini ekliyorum
New-AddressBookPolicy -Name "Rize – ABP" -AddressLists "\Rize – Address List" -OfflineAddressBook "\Rize – Offline Address List" -GlobalAddressList "\Rize – Global Address List" -RoomList "\Rize – Room List"
Bu bölümü isterseniz ara yüz üzerinden de yapabilirsiniz;
Son olarak bu oluşturduğumuz ABP yi kullanıcılara uygulamak gerekli. İsterseniz tek tek kullanıcıların üzerinde bu değişiklikleri yapabilirsiniz.
Ancak tek tek kullanıcıların üzerinde bu tür ayarlamalar bir hayli zaman alacaktır. Bu nedenle ben topluca seçip ofis bilgisi yazdığım kullanıcılar için powershell kullanıyorum.
Get-Mailbox | where {$_.Office -eq "Rize"} | Set-Mailbox -AddressBookPolicy "Rize – ABP"
Bu powershell Office bilgisi olarak Rize yazan tüm mailboxları getirir ve bunun ABP değerini “Rize – ABP” olarak günceller.
Bu yukarıdaki adımlatın aynılarını Antalya içinde yapıyorum.
New-AddressList -Name "Antalya – Address List" -RecipientFilter {((RecipientType -eq ‘UserMailbox’) -or (RecipientType -eq "MailUniversalDistributionGroup") -or (RecipientType -eq "DynamicDistributionGroup")) -and (Office -eq "Antalya")}
New-AddressList -Name "Antalya – Room List" -RecipientFilter {((Alias -ne $null) -and (CustomAttribute1 -eq "Antalya") -and ((RecipientDisplayType -eq ‘ConferenceRoomMailbox’) -or (RecipientDisplayType -eq ‘SyncedConferenceRoomMailbox’)))}
New-GlobalAddressList -Name "Antalya – Global Address List" -RecipientFilter {(Office -eq "Antalya")}
New-OfflineAddressBook -Name "Antalya – Offline Address List" -AddressLists "Antalya – Address List"
New-AddressBookPolicy -Name "Antalya – ABP" -AddressLists "\Antalya – Address List" -OfflineAddressBook "\Antalya – Offline Address List" -GlobalAddressList "\Antalya – Global Address List" -RoomList "\Antalya – Room List"
Get-Mailbox | where {$_.Office -eq "Antalya"} | Set-Mailbox -AddressBookPolicy "Antalya – ABP"
Peki şimdi sonucu görelim.
Antalya çalışanlarından olan Hakan ile logon oluyorum ve adres defterini açıyorum;
Policy uygulanmadan önce
Uygulandıktan sonra
Görüldüğü gibi sadece Antalya GAL ve Antalya Room List geliyor ve yine bu GAL içerisinde sadece Antalya çalışanları bulunuyor. Diğer adres listelerini göster dersenizde Antalyaya ait olan Address List ler gelecektir.
Ancak burada unutulmaması gereken nokta artık bu kullanıcı diğer şubedeki kullanıcıları adres defteri üzerinden göremeyecektir.
Yukarıda görüldüğü üzere şirket organizasyonunda Serkan isimli bir çalışan olmasına rağmen kendi segmentinde olmadığı için bu isim “Check Names” kısmından da çözümlenmiyor.
Ancak Serkan veya sık görüştüğünüz kişileri kendi kişi listenize eklerseniz bu durumda check names çalışacaktır. Veya Ek adres listelerini OAB içerisine de ekleyebilirsiniz.
Umarım faydalı bir makale olmuştur. Bir sonraki makalemizde görüşmek üzere.