Share via


管理通訊錄服務

 

上次修改主題的時間: 2012-04-04

部署 Microsoft Lync Server 2010Enterprise Edition Server 或 Standard Edition Server 時,預設會安裝通訊錄服務。通訊錄服務使用的資料庫 (RTCab 和 RTCab1) 是建立在 SQL Server 上 (就 Enterprise Edition Server 而言,這是後端 SQL Server;就 Standard Edition Server 而言,這是組合的 SQL Server)。

Address Book Server 電話號碼正規化

Lync Server 2010 需要標準化的 RFC 3966/E.164 電話號碼。若要使用未經組織或格式不一致的電話號碼,Lync Server 會使用 Address Book Server 預先處理電話號碼,然後才將電話號碼交給正規化規則處理。從通訊錄中使用電話號碼並套用正規化規則後,Microsoft Lync 2010、Microsoft Lync 2010 Phone Edition 和 Microsoft Lync 2010 Mobile 等用戶端就可以使用這些正規化號碼。

新通訊錄功能中所討論,舊版中使用的正規化規則可能需要經過一些調整才能正常使用。因為在交給正規化規則之前會先移除空格和非強制字元,所以如果 regex 運算式明確尋找虛線或其他已移除的字元,正規化規則可能會失敗。您應該檢閱正規化規則,確保它們不會尋找這類非強制字元,否則,如果規則預期字元存在而字元不存在,規則就會先按正常程序失敗再繼續運作。

使用者複寫器和 Address Book Server

Address Book Server 會使用 [使用者複寫器] 提供的資料,來更新其最初從全域通訊清單 (GAL) 取得的資訊。[使用者複寫器] 會將每個使用者、連絡人和群組的 Active Directory 網域服務 (AD DS) 屬性寫入資料庫中的 AbUserEntry 資料表,而 Address Book Server 會將資料庫中的使用者資料同步到 Address Book Server 檔案存放區中的檔案以及通訊錄資料庫 RTCab 或 RTCab1。AbUserEntry 資料表的架構使用兩個資料行 UserGuidUserDataUserGuid 是索引資料行,其中包含 Active Directory 物件的 16 位元組 GUID。UserData 是影像資料行,其中包含該連絡人所有先前提及的 Active Directory 網域服務 (AD DS) 屬性。

[使用者複寫器] 會讀取組態資料表來判斷要寫入的 Active Directory 屬性,此資料表與 AbUserEntry 資料表位於相同的 SQL Server 執行個體。AbAttribute 資料表包含三個資料行 IDNameFlags。此資料表是在資料庫設定期間建立。如果 AbAttribute 資料表是空的,[使用者複寫器] 會略過其 AbUserEntry 資料表處理邏輯。Address Book Server 屬性是從 AbAttribute 資料表擷取的動態屬性,該資料表最初是在 Address Book Server 啟動時由 Address Book Server 寫入。

Address Book Server 啟動時會在 AbAttribute 資料表中填入支援 Lync Server 所需的值。下表顯示這些目前的值。

ID Name Flags

1

givenName

0x01400000

2

Sn

0x02400000

3

displayName

0x03420000

4

Title

0x04000000

5

mailNickname

0x05400000

6

Company

0x06000000

7

physicalDeliveryOfficeName

0x07000000

8

msRTCSIP-PrimaryUserAddress

0x08520C00

9

telephoneNumber

0x09022800

10

homePhone

0x0A302800

11

Mobile

0x0B622800

12

otherTelephone

0x0C302000

13

ipPhone

0x0D302000

14

Mail

0x0E500000

15

groupType

0x0F010800

16

Department

0x10000000

17

描述

0x11000100

18

Manager

0x12040001

19

proxyAddress

0x00500105

20

msExchHideFromAddressLists

0xFF000003

99

entryID

0x99000000

ID 資料行中的數字必須是唯一的,且絕不可重複使用。另外,保持 ID 值小於 256 可在 Address Book Server 寫入的輸出檔中節省空間。不過,ID 最大值是 65535。Name 資料行對應於 [使用者複寫器] 應在 AbUserEntry 資料表中為每個連絡人置入的 Active Directory 屬性名稱。Flags 資料行中的值用來定義屬性的類型。[使用者複寫器] 認得下列類型的 Address Book Server 屬性 (以 Flags 資料行中的值的低位元組表示)。

屬性 描述

0x0

字串屬性。[使用者複寫器] 會先將此類型轉換為 UTF-8,再將之儲存於 AbUserEntry 資料表。

0x1

二進位屬性。[使用者複寫器] 會以二進位大型物件儲存此屬性而不做任何轉換。

0x2

字串屬性,但只在屬性值開頭為 "tel:" 時才包含。這主要用於多重值字串屬性,特別是 proxyAddresses。在此情況下,Address Book Server 只會注意開頭為 "tel:" 的 proxyAddresses 項目。因此,為了節省空間,[使用者複寫器] 只會儲存開頭為 "tel:" 的項目。

0x3

布林字串屬性,TRUE 會使 [使用者複寫器] 不將此連絡人放入 AbUserEntry 資料表中。如果是 FALSE,則會使 [使用者複寫器] 將此連絡人的屬性放入 AbUserEntry 資料表中,但不包括具有此旗標的特定屬性。這是另一個主要用於 msExchHideFromAddressLists 屬性的特殊案例類型。

0x4

字串屬性,但只在屬性值開頭為 "smtp:"且含有 "@" 符號時才包含。

0x5

字串屬性,但只在屬性值開頭為 "tel:"或 "smtp:"且含有 "@" 符號時才包含。

0x100

如果設定,則這是可針對每個連絡人出現一次以上的多重值屬性。

0x400

如果設定,則這將識別連絡人的電子郵件使用者帳戶名稱屬性。Address Book Server 會使用此旗標來識別要在電話正規化事件記錄項目中顯示的屬性值。

0x800

如果設定,則這將識別連絡人的必要屬性。只有當此屬性在 Active Directory 中有值時,Address Book Server 才會在 AbUserEntry 資料表中加入使用者。如果有一個以上的必要屬性,則只要其中一個有值,就會在 AbUserEntry 資料表中加入使用者。

0x1000

如果設定,則 Address Book Server 一律會正規化此屬性的值。

0x2000

如果設定,則當 UseNormalizationRules CMS 設定為 FALSE 時,Address Book Server 會使用 proxyAddresses 中的正規化數字,否則其行為與旗標位元為 0x1000 時相同。

0x4000

如果設定,則 Address Book Server 不會在 AbUserEntry 資料表中加入所指定的屬性為此值的物件。例如,如果 msRTCSIP-PrimaryUserAddress 屬性已設定此旗標位元,則不會將具有此屬性的連絡人寫入資料庫。

0x8000

如果設定,則 Address Book Server 不會將所指定的屬性不是此值的物件加入 AbUserEntry 資料表。如果物件上同時設定 0x4000 和 0x8000 旗標位元,則以旗標位元值設為 0x4000 的屬性為優先,且會從 AbUserEntry 資料表中排除物件。

0x10000

如果設定,則這代表群組物件。[使用者複寫器] 會使用此旗標位元來加入具有 groupType 屬性 (表示這是群組) 的連絡人,例如,通訊群組清單或安全性群組。

0x20000

如果設定,則 [使用者複寫器] 會使用此旗標位元將此屬性加入裝置特定 Address Book Server 檔案 (副檔名為 .dabs 的檔案)。

篩選通訊錄

您可以根據 AbAttribute 資料表中列出的 Active Directory 網域服務 (AD DS) 屬性,控制要在 Address Book Server 檔案中填入的使用者。其中一個這類可用於篩選的屬性就是 msExchangeHideFromAddressBook 屬性。這是由 Exchange 架構所新增的使用者屬性。如果此屬性的值是 TRUE,Exchange Server 會使用此屬性在 Outlook 全域通訊清單 (GAL) 隱藏該連絡人。同樣地,如果此屬性的值是 TRUE,[使用者複寫器] 會在 AbUserEntry 資料表中加入該使用者,而此使用者不會出現在 Address Book Server 檔案中。

您可以使用一些旗標位元來定義要在 Address Book Server 屬性上使用的篩選器。例如,某些旗標位元的存在可將屬性識別為包含屬性或排除屬性。[使用者複寫器] 會濾除含有排除屬性的連絡人,並濾除不含包含屬性的連絡人。

目前,有三種不同的篩選器。下表列出這些篩選器。

屬性 描述

0x800

如果設定,則這將識別連絡人的必要屬性。[使用者複寫器] 會使用此旗標位元來濾除不含至少一個必要屬性的連絡人。OuPathId 是一律會設定的必要屬性。因此,至少應該再設定另一個必要屬性。否則,仍然不會將連絡人 (具有必要屬性 OuPathId 的值) 寫入資料庫。例如,如果 telephoneNumberhomePhone 是定義為必要屬性,則只會將具有至少其中一個屬性的連絡人寫入資料庫。

0x4000

如果設定,則這將識別排除屬性。[使用者複寫器] 會使用此旗標位元來濾除包含此屬性的連絡人。例如,如果 msRTCSIP-PrimaryUserAddress 是定義為排除屬性,則不會將具有此屬性的連絡人寫入資料庫。

0x8000

如果設定,則這將識別包含屬性。[使用者複寫器] 會使用此旗標位元來濾除不含此屬性的連絡人。例如,如果 msRTCSIP-PrimaryUserAddress 是定義為包含屬性,則只會將具有此屬性的連絡人寫入資料庫。

note附註:
如果同時設定 0x4000 (排除屬性) 和 0x8000 (包含屬性) 旗標位元,則 0x4000 位元會覆寫 0x8000 位元,並排除該連絡人。

雖然您可以篩選通訊錄來僅包含某些使用者,但限制項目並不會限制其他使用者連絡被濾除的使用者,或查看其顯示狀態的能力。使用者一律可以輸入使用者的完整登入名稱,以尋找不在通訊錄中的使用者,或是對其手動傳送即時訊息或手動進行呼叫。另外,在 Outlook 或 Windows 通訊錄中也可以找到使用者的連絡資訊。

雖然在通訊錄檔案中有完整的連絡人記錄,可讓您使用 Lync 2010 對工作階段初始通訊協定 (SIP) 未設定的使用者進行電子郵件、電話或 Enterprise Voice 呼叫 (如果伺服器上已啟用 Enterprise Voice),但有些組織仍偏好僅在 Address Book Server 項目中包含啟用 SIP 的使用者。您可以在下列必要屬性的 Flags 資料行中清除 0x800 位元,以篩選通訊錄來僅包含啟用 SIP 的使用者。mailNicknametelephoneNumberhomePhonemobile。您可以在 msRTCSIP-PrimaryUserAddress 屬性的 Flags 資料行中設定 0x8000 (包含屬性),以篩選通訊錄來僅包含啟用 SIP 的使用者。這也有助於從通訊錄檔案中排除服務帳戶。

修改 AbAttribute 資料表之後,您可以執行 Cmdlet Update-CsUserDatabase 命令,以重新整理 AbUserEntry 資料表中的資料。在 UR 複寫完成之後,您可以手動執行 Cmdlet UpdateCsAddressBook 命令,以更新 Address Book Server 檔案存放區中的檔案。

note附註:
Address Book Server 所在的前端無法利用系統管理權限來設定。在部署期間就已選擇一個前端 – 通常是第一個部署的前端。如果失敗,則會將通訊錄服務移至另一個前端,而不需要系統管理人員介入。另外,通訊錄服務有兩個資料庫 – RTCab 和 RTCab1。資料庫會每日更新,但是會以輪流的方式進行更新。如果目前正在更新 RTCab 資料庫,則更新進行時,會對 RTCab1 資料庫執行查詢。隔天則輪到更新 RTCab1,當更新進行時,就會對 RTCab 執行查詢。這樣可確保至少有一個資料庫可用來進行查詢和通訊錄檔案建立。
important重要事項:
如果您已在多樹系部署或父系/子系部署中合併或修改基礎結構 (例如,在移至 Lync Server 2010 之前合併基礎結構),可能會發現某些使用者執行通訊錄服務下載和 Address Book Web Query 時會失敗。在具有多個網域或樹系的部署中,出現此問題的使用者物件上已填入屬性 MsRTCSIP-OriginatorSid。您必須將這些物件的 MsRTCSIP-OriginatorSid 屬性設為 NULL,才能解決此問題。