管理通訊錄服務
上次修改主題的時間: 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 資料表的架構使用兩個資料行 UserGuid 和 UserData。UserGuid 是索引資料行,其中包含 Active Directory 物件的 16 位元組 GUID。UserData 是影像資料行,其中包含該連絡人所有先前提及的 Active Directory 網域服務 (AD DS) 屬性。
[使用者複寫器] 會讀取組態資料表來判斷要寫入的 Active Directory 屬性,此資料表與 AbUserEntry 資料表位於相同的 SQL Server 執行個體。AbAttribute 資料表包含三個資料行 ID、Name 和 Flags。此資料表是在資料庫設定期間建立。如果 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 |
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 的值) 寫入資料庫。例如,如果 telephoneNumber 和 homePhone 是定義為必要屬性,則只會將具有至少其中一個屬性的連絡人寫入資料庫。 |
0x4000 |
如果設定,則這將識別排除屬性。[使用者複寫器] 會使用此旗標位元來濾除包含此屬性的連絡人。例如,如果 msRTCSIP-PrimaryUserAddress 是定義為排除屬性,則不會將具有此屬性的連絡人寫入資料庫。 |
0x8000 |
如果設定,則這將識別包含屬性。[使用者複寫器] 會使用此旗標位元來濾除不含此屬性的連絡人。例如,如果 msRTCSIP-PrimaryUserAddress 是定義為包含屬性,則只會將具有此屬性的連絡人寫入資料庫。 |
附註: |
---|
如果同時設定 0x4000 (排除屬性) 和 0x8000 (包含屬性) 旗標位元,則 0x4000 位元會覆寫 0x8000 位元,並排除該連絡人。 |
雖然您可以篩選通訊錄來僅包含某些使用者,但限制項目並不會限制其他使用者連絡被濾除的使用者,或查看其顯示狀態的能力。使用者一律可以輸入使用者的完整登入名稱,以尋找不在通訊錄中的使用者,或是對其手動傳送即時訊息或手動進行呼叫。另外,在 Outlook 或 Windows 通訊錄中也可以找到使用者的連絡資訊。
雖然在通訊錄檔案中有完整的連絡人記錄,可讓您使用 Lync 2010 對工作階段初始通訊協定 (SIP) 未設定的使用者進行電子郵件、電話或 Enterprise Voice 呼叫 (如果伺服器上已啟用 Enterprise Voice),但有些組織仍偏好僅在 Address Book Server 項目中包含啟用 SIP 的使用者。您可以在下列必要屬性的 Flags 資料行中清除 0x800 位元,以篩選通訊錄來僅包含啟用 SIP 的使用者。mailNickname、telephoneNumber、homePhone 和 mobile。您可以在 msRTCSIP-PrimaryUserAddress 屬性的 Flags 資料行中設定 0x8000 (包含屬性),以篩選通訊錄來僅包含啟用 SIP 的使用者。這也有助於從通訊錄檔案中排除服務帳戶。
修改 AbAttribute 資料表之後,您可以執行 Cmdlet Update-CsUserDatabase 命令,以重新整理 AbUserEntry 資料表中的資料。在 UR 複寫完成之後,您可以手動執行 Cmdlet UpdateCsAddressBook 命令,以更新 Address Book Server 檔案存放區中的檔案。
附註: |
---|
Address Book Server 所在的前端無法利用系統管理權限來設定。在部署期間就已選擇一個前端 – 通常是第一個部署的前端。如果失敗,則會將通訊錄服務移至另一個前端,而不需要系統管理人員介入。另外,通訊錄服務有兩個資料庫 – RTCab 和 RTCab1。資料庫會每日更新,但是會以輪流的方式進行更新。如果目前正在更新 RTCab 資料庫,則更新進行時,會對 RTCab1 資料庫執行查詢。隔天則輪到更新 RTCab1,當更新進行時,就會對 RTCab 執行查詢。這樣可確保至少有一個資料庫可用來進行查詢和通訊錄檔案建立。 |
重要事項: |
---|
如果您已在多樹系部署或父系/子系部署中合併或修改基礎結構 (例如,在移至 Lync Server 2010 之前合併基礎結構),可能會發現某些使用者執行通訊錄服務下載和 Address Book Web Query 時會失敗。在具有多個網域或樹系的部署中,出現此問題的使用者物件上已填入屬性 MsRTCSIP-OriginatorSid。您必須將這些物件的 MsRTCSIP-OriginatorSid 屬性設為 NULL,才能解決此問題。 |