User Profile Synchronization Service never sync existing users in security group

MS的東西充滿缺憾, 其User Interface的難用及誤導性也是手屈一指的。

最近幾天, 花了很長的時間研究才發現這個問題 (我認為是一個難設計或BUG), UPSS並不能把security group之中的人員更新正確同步到SharePoint User Profile之中

首先說一下背景: 我需要為Sharepoint及AD設定同步, 由於AD中有10000人, 而只有100人會使用SharePoint, 所以我想建立一個Security Group (叫Sharepoint users) 然後把使用者100人的帳號放進Sharepoint users之中, 然後設定只同步Sharepoint users。

於是我在User Profile Synchronization Service 頁面, 按Configure Synchronization Connections, 選擇你的連線然後編輯 (不懂怎樣設定connection的話請看這裡)

在Containers (容器)位置, 找出spusers然後點選SharePoint users

containers

 

為了讓大家知道這個BUG怎「運作」, 這時請在AD中新增一個user, 然後加入Sharepoint users群組

一切準備好後, 回到User Profile Synchronization Service 頁面, 按Start Profile Synchronization, 開始同步。

按照常理, 應該會有101個user同步到Sharepoint profile DB是不是? 可惜, MS不是用常理可以判斷的。在以上的實驗中, 只有新增的那一名user才會同步過去….

 

為什麼呢?!?!?!

 

經過反覆測試, 最後我終於在MiisClient找到端倪。打開MiisClient, 按上面的Management Agents, 可以看到你在User Profile Synchronization Service 頁面設定的Connection, 名字為MOSSAD-[Connection名字], 我的Connection名為AD Sync, 因此:

ups_bug1

雙擊MOSSAD-[Connection名字]打開Properties視窗, 選Configure Directory Partitions -> Containers..

ups_bug2

輸入你用來Sync AD的帳號和密碼, 就會打開一個樹狀圖, 跟剛剛在User Profile Synchronization Service 頁面看到的一樣 (下圖左)

ups_bug3

按下"Advanced.."按鈕, 就會看到一個include/exclude的List, 赫然發現該100人全部都在Exclude名單之中!!!

經反覆測試後, 這是因為當我們"只"選擇Sharepoint Users群組時, 就會把Sharepoint User同level的所有object都定為Exclude。在我的AD中, Sharepoint Users是在Users資料夾底下的:

ups_bug4

 

我的所有Users (該101個users) 亦在同一Level, 因此被定為Exclude了, 我猜MS這設計是避免同步時的Loop (例如Group1包括Group2, Group2包括Group1之類)。但這實在太可惡了, 沒有MIISClient根本不可能了解當中錯誤。

如果你使用MIISClient中把100名user的Exclude全部拿掉, 同步就能順利進行。可是, 使用MIISClient或FIM Client去修改Synchronization connection是MS不建議的, 我也不建議, 因為在SharePoint介面中根本無從得知你改了什麼, 就算你在文件中清楚說明做了那些改動, 難保將來一些Patch或一些對UPS的操作影響今天的修改的, 請避免。

最後, 我怎樣解決上述的難題? 暫時我只好把整個Users資料夾作同步(嗯… 10000個), 其佔用資源其實不多, 看看將來有沒有想到妙計, 再補充。

廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

%d 位部落客按了讚: