Exchange 脫機通訊錄管理

Exchange中的脫機通訊錄(Offline Address Book / OAB)是一個很有用的功能,用戶可以在脫機通訊錄上查詢到大量有用信息。而且,由於是“脫機”的,當客戶端沒有連接到Exchange服務器時,依然可以使用。

需要注意一點,脫機通訊錄僅供Outlook客戶端使用Exchange方式連接(MAPI/Outlook Anywhere),並且啓用了緩存模式(Cache Mode)的情況下使用,其它任何類型的客戶端都是不會用到脫機通訊錄功能的。

 

脫機通訊錄在配置和使用過程中,主要有三個階段:

生成(郵箱服務器)=>發佈(客戶端訪問服務器)=>下載(Outlook客戶端)

由於從Exchange Server 2007開始,Microsoft開始逐漸淡化公用文件夾(Public Folder)功能,因此本文中不再討論通過公用文件夾發佈脫機通訊錄。

 

生成脫機通訊錄

那麼,脫機通訊錄是如何產生的呢?

這裏需要先明確Exchange Server中的地址列表(Address List及Global Address List)和脫機地址簿(Offline Address Book)兩個概念。

如前所述,脫機地址簿是“脫機”數據,客戶端下載了脫機地址簿,對它的查詢操作都是由客戶端本地完成,不佔用服務器資源;而地址列表則是“在線”數據,每一次客戶端使用地址列表,都會向活動目錄提交查詢,並且獲取實時的返回信息。可以看到,脫機地址簿對於節省服務器開銷是很有幫助的,特別是企業規模較大,而用戶習慣使用通訊錄來查詢收件人信息的時候。另外,脫機地址簿僅供Outlook客戶端使用;地址列表會除了Outlook可以訪問外,OWA的用戶總會利用地址列表進行檢索。

 

脫機通訊錄與地址列表之間的關係是使用者與被使用者的關係。脫機通訊錄中包含一個或多個地址列表,Exchange服務器根據地址列表的查詢結果來產生脫機通訊錄。默認情況下,脫機通訊錄中會包含默認全局地址列表(Default Global Address List),管理員可以根據需要進行修改。例如下圖,管理員在這個脫機通訊錄中,除了包含默認全局地址列表外,還包含了其它3個地址列表。

1-1

 

在一個脫機通訊錄中放置多個地址列表,當客戶端連接並希望下載脫機通訊錄時,就可以選擇需要下載哪個部分,例如上圖中的脫機通訊錄,客戶端連接時,就能夠有如下的選擇:

1-2

Exchange郵箱服務器創建好脫機通訊錄之後,會把脫機通訊錄的信息放到Exchange安裝路徑的ExchangeOAB子目錄下,每一個脫機通訊錄會在該目錄下再創建出一個以GUID值命名的子文件夾,數據放在該子文件夾中。ExchangeOAB是一個共享文件夾,所有Exchange服務器對它都有讀取權限。

1-3

發佈脫機通訊錄

脫機通訊錄由Exchange郵箱服務器創建完成後,將通過Exchange客戶端訪問服務器發佈。管理員可以指定需要發佈脫機通訊錄的客戶端訪問服務器名稱。例如下圖所示,這個脫機通訊錄將被髮布到3臺Exchange客戶端訪問服務器上。

2-1

Exchange客戶端訪問服務器上,有一個名爲Microsoft Exchange File Distribution的服務,這個服務將從前面所提到的ExchangeOAB共享文件夾中,獲取需要在本機發布的脫機通訊錄數據,並複製到客戶端訪問服務器本地,具體的位置是Exchange安裝路徑的ClientAccess\OAB子目錄。而OAB是發佈到IIS中作爲虛擬目錄存在的,這樣客戶端Outlook就可以通過訪問IIS來獲取脫機通訊錄了。例如下圖所示,這臺客戶端訪問服務器上,總共發佈了3個脫機通訊錄。

2-2

IIS中看到的虛擬目錄情況:

2-3

2-4

 

在Outlook客戶端使用脫機通訊錄

從Exchange服務器端實現脫機通訊錄的創建和發佈之後,就可以從Outlook客戶端下載並使用了。

首先,在配置Outlook帳號時,檢查緩存模式是否被啓用。

2-5

然後,打開通訊錄,在通訊錄欄目上右擊,選擇彈出菜單中的Property,檢查當前客戶端使用的通訊錄位置。

2-6

如果客戶端已經下載了脫機通訊錄,會看到以下界面。

2-7

如果還沒有下載脫機通訊錄,界面中將會顯示當前連接的Exchange Server 2010客戶端訪問服務器名稱。

2-8

 

要檢查Outlook具體是連接到哪臺服務器上獲取脫機通訊錄,我們可以使用自動發現功能進行測試。

在Outlook運行時,系統托盤區會有一個Outlook圖標,按住Ctrl鍵並用鼠標點擊該圖標,菜單欄中會出現兩個額外的菜單(對比沒有按住Ctrl鍵時),即:Connection Status和Test E-mail AutoConfiguration。

2-9

選擇Test E-mail AutoConfiguration,輸入密碼後進行測試,可以獲取Exchange服務器上配置的自動發現信息,其中就有Outlook獲取脫機通訊錄的具體位置。

2-A

 

當一個Exchange組織中配置了多個脫機通訊錄時,Outlook會下載哪一個呢?這是由用戶郵箱所在的郵箱數據庫屬性決定的。管理員可以通過修改郵箱數據庫屬性頁面的Client Settings=>Offline Address Book的設置,爲該數據庫上的所有用戶指定使用的脫機通訊錄。

2-B

請注意,默認情況下,郵箱數據庫上是沒有指定脫機通訊錄的,此時Exchange會使用默認脫機通訊錄來作爲該郵箱數據庫的脫機通訊錄。例如下圖所示,在這個Exchange組織中一共有3個脫機通訊錄,如果郵箱數據庫上沒有指定脫機通訊錄,就會自動使用OAB#1。

2-C

 

脫機通訊錄的更新

由於脫機通訊錄默認配置會在每天的早上5:00進行更新,其它時段是不會主動更新的。可以運行Get-OfflineAddressBook | Update-OfflineAddressBook這個命令,來強制觸發所有脫機通訊錄的更新。根據Exchange組織規模不同,更新可能會花幾分鐘到幾十分鐘不等的時間。

每一個脫機通訊錄都對應一個GUID值,Exchange組織根據GUID值來唯一定位一個脫機通訊錄。如果組織中配置了多個脫機通訊錄,如何判斷OAB GUID的值呢?可以使用Get-OfflineAddressBook | select name,guid命令來獲取。

3-1

 

脫機通訊錄常見錯誤及排查

Outlook客戶端使用脫機通訊錄時,最常遇到的錯誤就是:“該對象不存在”。在前面討論了脫機通訊錄的生成=>發佈=>下載過程後,再遇到此類錯誤,就可以按照這3個部分,依次進行檢查,以定位問題的起因。

首先要檢查的是Exchange郵箱服務器的ExchangeOAB文件夾。利用前面說提到的Get-OfflineAddressBook 命令,檢查ExchangeOAB下是否存在以GUID值命名的子文件夾。如果不存在,那麼可以檢查這臺服務器上的應用程序日誌,看看有什麼錯誤或警告信息,根據這些信息進行錯誤排查。

然後檢查Exchange客戶端訪問服務器的OAB文件夾,是否存在脫機通訊錄文件。如果不存在,可以重新啓動Microsoft Exchange File Distribution服務,強制複製脫機通訊錄。如果問題依然存在,可以檢查應用程序日誌,根據日誌信息繼續排查。

最後,檢查Outlook客戶端的連接。從Outlook 2007開始,Outlook下載脫機通訊錄時不再需要Exchange公用文件夾,而是使用HTTP/HTTPS方式。Outlook實際訪問的URL是什麼呢?這個信息可以通過Outlook的“測試電子郵件自動配置”中獲取,自動配置信息,複製其中的OABUrl值,從IE中嘗試打開,看看是否能夠訪問到。

例如從自動配置信息中看到的OABUrl值是https://cas_server/<OAB_GUID>,可以從IE訪問https://cas_server/<OAB_GUID>/oab.xml,這樣可以用於確定OAB是否可用。

從自動配置信息中找到OABUrl:

3-2

在OABUrl之後加上oab.xml,然後從IE進行訪問,正常情況下,應該能夠打開並看到類似下圖的信息。

3-3

參考一下服務器上對於這個脫機通訊錄的設置,就可以看到oab.xml文件是如何構成的了。這個XML文件中的每一個OAL,都對應於管理員所設置的脫機通訊錄中包含的地址列表。

3-4

 

Outlook 2007/2010客戶端連接到Exchange時,經常會遇到的另一個問題是,每次連接都會彈出證書安全警告。這是由於Exchange客戶端訪問服務器上的證書,以及服務的URL路徑配置不匹配引起的。關於證書問題的解決方法,將在後續文章中進行討論。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章