維護設定檔同步處理 (SharePoint Server 2010)
適用版本: SharePoint Server 2010
上次修改主題的時間: 2016-11-30
透過 SharePoint Server 2010 中的設定檔同步處理,使用者設定檔服務執行個體的管理員能夠將 SharePoint Server 2010 設定檔中所儲存的使用者與群組設定檔資訊,與企業目錄服務中所儲存的設定檔資訊進行同步處理。設定完設定檔同步處理之後,必須完成某些工作才能保留這些設定。這些工作的範例包括移除已停用或已刪除的使用者、移動或重新命名伺服器,以及啟動或停止 User Profile Synchronization Service 等。如需詳細資訊,請參閱<規劃設定檔同步處理 (SharePoint Server 2010)>。
完成本文中的程序之前,必須先完成<設定設定檔同步處理 (SharePoint Server 2010)>中的程序。
工作需求
伺服器陣列執行 SharePoint Server 2010 標準版或企業版,且您已執行伺服器陣列設定精靈。
警告
設定檔同步處理在獨立安裝的 SharePoint Server 2010 上沒有作用。
存在並已啟動 User Profile Service 應用程式的執行個體。如需詳細資訊,請參閱<建立、編輯或刪除 User Profile Service 應用程式 (SharePoint Server 2010)>。
若使用 Microsoft SQL Server 2008,則需要 Microsoft SQL Server 2008 Service Pack 1 (SP1) 的累積更新套件 2 (CU2) (https://go.microsoft.com/fwlink/?linkid=165962&clcid=0x404) (機器翻譯)。
已安裝 Windows Server 2008 R2 的 WCF Hotfix (KB976462(可能為英文網頁))。
重要
請參閱版本資訊以了解有關設定檔同步處理可能需要的其他工作需求。
本文中的程序
重新命名使用者或變更使用者網域
排除停用的使用者
刪除過時的使用者與群組
維護設定檔結構描述變更
重新命名設定檔同步處理伺服器
將 User Profile Synchronization Service 移至新的伺服器
重設設定檔同步處理
將設定檔同步處理通訊限制在特定網域控制站
調整設定檔同步處理逾時
重新命名使用者或變更使用者網域
SharePoint Server 2010 提供一種可用以處理多種不同使用者移轉案例的方法。以下是針對 Active Directory 網域服務 (AD DS) 處理的案例範例:
帳戶名稱 (sAMAccountName) 在使用者所在的 AD DS 中發生變更。
安全性識別碼 (SID) 發生變更。
辨別名稱 (DN) 發生變更,其中包括使用者帳戶所在之 AD DS 的組織單位 (OU) 容器中的變更。此為 SharePoint Server 2010 中的新功能。例如,如果使用者的 DN 在 AD DS 中從 "User= EUROPE\John Smith, Manager=CN=John Rodman, OU=Users, DC=EMEA1, DC=corp, DC=contoso, DC=com" 移到 "User= EUROPE\John Smith, Manager=CN=John Rodman, OU=Managers, DC=EMEA1, DC=corp, DC=contoso,DC=com",MigrateUser 命令會更新此使用者的使用者設定檔儲存。在將使用者設定檔從 EMEA1.corp.contoso.com AD DS 同步到 SharePoint Server 使用者設定檔儲存時,John Smith 的使用者設定檔會進行更新。
重新命名使用者或變更使用者網域
確認是否具備下列系統管理認證:
請參閱<Add-SPShellAdmin>。
您必須是執行 SharePoint 管理中心網站之電腦上伺服器陣列管理員群組的成員。
在 SharePoint 伺服器陣列安裝程序中所建立的伺服器陣列管理員帳戶,還同時必須是部署 User Profile Synchronization Service 之伺服器上的本機管理員。
如果正在執行某個設定檔同步處理,請跳至管理中心頁面,然後按一下 [應用程式管理] 區段中的 [管理服務應用程式]。從服務應用程式清單中選取適當的 User Profile Service 應用程式。在 [管理服務應用程式] 頁面上,按一下 [停止設定檔同步處理]。
停用累加設定檔同步處理計時器工作。
確定使用
stsadm -o migrateuser
進行的使用者移轉已成功。經由瀏覽至已移轉使用者的「我的網站」(例如 http://mysite/person.aspx?accountname=<新的帳戶名稱>),確認該使用者的設定檔可以存取。
執行設定檔同步處理。如需詳細資訊,請參閱<執行非週期性設定檔同步處理>。
瀏覽至已移轉使用者的「我的網站」,再次檢查是否可存取該使用者設定檔。
啟用累加設定檔同步處理計時器工作。
排除停用的使用者
您可以使用 SharePoint Server 2010 中的排除篩選,排除其帳戶在 AD DS 中已停用的使用者。如需有關排除停用之使用者所需的步驟,請參閱<編輯設定檔同步處理連線篩選>。
刪除過時的使用者與群組
SharePoint Server 2010 使用者設定檔儲存中可以存在過時之使用者或群組的原因有兩種:
過時的使用者:「我的網站」清除計時器工作目前不在作用中。User Profile Synchronization 計時器工作會將已經從目錄來源中刪除的使用者標記為待刪除。當「我的網站」清除工作執行時,它會尋找所有標記為待刪除的使用者並刪除這些使用者的設定檔。然後將各自「我的網站」指派給已刪除之使用者的主管,並向該主管發出一封電子郵件通知此刪除情況。
**過時的使用者與群組:**使用者設定檔儲存中存在不是由設定檔同步處理所匯入的使用者與群組。舉例來說,如果您從舊版的 SharePoint Server 升級,而且選擇只與 SharePoint Server 2010 同步處理網域的子集,即會出現這種情況。
使用 Windows PowerShell 尋找及移除過時的使用者與群組
確認符合下列基本需求:
請參閱<Add-SPShellAdmin>。
您必須具備設定檔資料庫的 ImportExport_GetNonimportedObjects 和 ImportExport_PurgeNonimportedObjects 預存程序的「執行」權限。
您可以使用 SQL Management Studio 或 Transact-SQL 來授予權限。如需詳細資訊,請參閱 GRANT 物件權限 (Transact-SQL) (https://go.microsoft.com/fwlink/?linkid=213464&clcid=0x404)。
在 [開始] 功能表上,按一下 [所有程式]。
按一下 [Microsoft SharePoint 2010 產品]。
在 [SharePoint 2010 管理命令介面] 上按一下滑鼠右鍵,並按一下 [以系統管理員身分執行]。
在 [使用者帳戶控制] 對話方塊中,按一下 [是]。
在 Windows PowerShell 命令提示字元處,輸入下列命令:
若要取得 User Profile Service 應用程式物件,請輸入以下命令:
$upa = Get-spserviceapplication <identity>
其中 <identity> 是 User Profile Synchronization Service 應用程式的 GUID。
若要檢視要刪除的使用者和群組,請輸入下列命令:
Set-SPProfileServiceApplication $upa -GetNonImportedObjects $true
若要刪除過時的使用者和群組,請輸入下列命令:
警告
此動作無法復原。
Set-SPProfileServiceApplication $upa -PurgeNonImportedObjects $true
如需詳細資訊,請參閱<Get-SPServiceApplication>與<Set-SPProfileServiceApplication>。
維護設定檔結構描述變更
設定檔結構描述變更包括新增新的使用者設定檔屬性、變更使用者設定檔屬性對應,或變更設定檔同步處理連線篩選等內容。當設定檔結構描述發生變更時,必須先執行非週期性的完整同步處理,然後再排程週期性的設定檔同步處理。如需執行非週期性之設定檔完整同步處理所需的步驟,請參閱<執行非週期性設定檔同步處理 (SharePoint Server 2010)>。
重新命名設定檔同步處理伺服器
請使用下列程序來重新命名設定檔同步處理伺服器。
使用 Windows PowerShell 重新命名設定檔同步處理伺服器
確認符合下列基本需求:請參閱<Add-SPShellAdmin>。
在 [開始] 功能表上,按一下 [所有程式]。
按一下 [Microsoft SharePoint 2010 產品]。
按一下 [SharePoint 2010 管理命令介面]。
在 Windows PowerShell 命令提示字元處,輸入下列命令:
Rename-SPServer <Identity> -Name <newName>
其中:
Identity 是伺服器的舊名稱。
newName 是伺服器的新名稱。
如需使用 Windows PowerShell 重新命名伺服器的詳細資訊,請參閱<Rename-SPServer>。
將 User Profile Synchronization Service 移至新的伺服器
使用下列程序,將 User Profile Synchronization Service 移至新伺服器。
使用管理中心,將 User Profile Synchronization Service 移至新伺服器
確認是否具備下列系統管理認證:
請參閱<Add-SPShellAdmin>。
您必須是執行 SharePoint 管理中心網站之電腦上伺服器陣列管理員群組的成員。
在 SharePoint 伺服器陣列安裝程序中所建立的伺服器陣列帳戶,還同時必須是部署 User Profile Synchronization Service 之伺服器上的本機管理員。
必須符合這個條件才能啟動 User Profile Synchronization Service。User Profile Synchronization Service 啟動之後,您可以從 Administrators 群組移除伺服器陣列帳戶。
在目前設定檔同步處理伺服器的 SharePoint 管理中心網站上,按一下 [系統設定] 區段中的 [管理伺服器上的服務]。
按一下在 [User Profile Synchronization Service] 旁的 [停止],以停止 User Profile Synchronization Service。
在新設定檔同步處理伺服器的 SharePoint 管理中心網站上,按一下 [系統設定] 區段中的 [管理伺服器上的服務]。
按一下在 [User Profile Synchronization Service] 旁的 [啟動],以啟動 User Profile Synchronization Service。
在新設定檔同步處理伺服器的 SharePoint 管理中心網站上,按一下 [應用程式管理] 區段中的 [管理服務應用程式]。
在 [服務應用程式] 頁面上,按一下適當的 User Profile Service 應用程式之名稱所對應的連結。
在使用者設定檔服務應用程式頁面的 [同步處理] 區段中,按一下 [啟動設定檔同步處理]。
在 [啟動設定檔同步處理] 頁面上,選取 [啟動完整同步處理],然後按一下 [確定]。
重設設定檔同步處理
使用者設定檔同步處理資料庫是使用者設定檔資訊的臨時區域。儲存在設定檔儲存中以及同步處理資料庫中的使用者設定檔資訊,將供 User Profile Service 之用。您可以執行下列步驟,安全地重設使用者設定檔同步處理資料庫,而不會遺失設定檔儲存中的資訊。
使用 Windows PowerShell 重設設定檔同步處理
確認符合下列基本需求:
請參閱<Add-SPShellAdmin>。
您必須是執行 SharePoint 管理中心網站之電腦上伺服器陣列管理員群組的成員。
在 SharePoint 伺服器陣列安裝程序中所建立的伺服器陣列帳戶,還同時必須是部署 User Profile Synchronization Service 之伺服器上的本機管理員。
必須符合這個條件才能啟動 User Profile Synchronization Service。User Profile Synchronization Service 啟動之後,您可以從 Administrators 群組移除伺服器陣列帳戶。
為預防任何失誤,請備份 User Profile Service 應用程式。如需詳細資訊,請參閱<備份服務應用程式 (SharePoint Server 2010)>。
在 [開始] 功能表上,按一下 [所有程式]。
按一下 [Microsoft SharePoint 2010 產品]。
在 [SharePoint 2010 管理命令介面] 上按一下滑鼠右鍵,並按一下 [以系統管理員身分執行]。
在 [使用者帳戶控制] 對話方塊中,按一下 [是]。
在 Windows PowerShell 命令提示字元處,輸入下列命令來停止 SharePoint 2010 Timer Service:
net stop sptimerv4
複製下列程式碼,並將程式碼貼到文字編輯器 (例如,記事本):
$syncdb=Get-SPDatabase <SyncDBGUID> $syncdb.Unprovision() $syncdb.Status='Offline' $upa=Get-SPServiceApplication <USPAppGUID> $upa.ResetSynchronizationMachine() $upa.ResetSynchronizationDatabase() $syncdb.Provision()
以下列值取代預留位置,其中:
<SyncDBGUID> 是同步處理資料庫的 GUID。
<UPSAppGUID> 是 User Profile Synchronization Service 應用程式的 GUID。
將檔案儲存成以 ANSI 編碼的文字檔案並命名為 ResetSyncDB.ps1。
在 Windows PowerShell,將目錄變更為您儲存檔案的目錄。
輸入下列命令:
./ResetSyncDB.ps1
使用 SQL Server Management Studio,在 SQL Server 為 User Profile Synchronization Service 帳戶 (也就是,伺服器陣列帳戶) 建立登入。然後在同步處理資料庫中,建立一個對應至登入的資料庫使用者,同時授予它 db_owner 資料庫角色的存取權。如需詳細資訊,請參閱如何:建立 SQL Server 登入 (https://go.microsoft.com/fwlink/?linkid=211993&clcid=0x404)、如何:建立資料庫使用者 (https://go.microsoft.com/fwlink/?linkid=211994&clcid=0x404),以及資料庫層級角色 (https://go.microsoft.com/fwlink/?linkid=211995&clcid=0x404)。
在 Windows PowerShell 命令提示字元處,輸入下列命令來啟動 SharePoint 2010 Timer Service:
net start sptimerv4
啟動 Profile Synchronization Service。如需詳細資訊,請參閱<設定設定檔同步處理>主題的<啟動 User Profile Synchronization Service>一節。
重設 IIS。如需深入了解 IIS 的重設方法,請參閱<設定設定檔同步處理>主題的<重設 IIS>一節。
建立與資料來源的連線。如需詳細資訊,請參閱<還原服務應用程式 (Search Server 2010)>。
執行完整的設定檔同步處理。如需詳細資訊,請參閱<執行非週期性設定檔同步處理>。
如需詳細資訊,請參閱<Get-SPDatabase>。
將設定檔同步處理通訊限制在特定網域控制站
請使用下列程序將設定檔同步處理通訊限制在特定網域控制站。
使用 Windows PowerShell 將設定檔同步處理通訊限制在特定網域控制站
確認符合下列基本需求:請參閱<Add-SPShellAdmin>。
在 [開始] 功能表上,按一下 [所有程式]。
按一下 [Microsoft SharePoint 2010 產品]。
在 [SharePoint 2010 管理命令介面] 上按一下滑鼠右鍵,並按一下 [以系統管理員身分執行]。
在 [使用者帳戶控制] 對話方塊中,按一下 [是]。
在 Windows PowerShell 命令提示字元處,輸入下列命令:
若要取得 User Profile Service 應用程式物件,請輸入以下命令:
$upa=Get-SPServiceApplication <GUID>
其中 <GUID> 是 User Profile Synchronization Service 應用程式的 GUID。
若要將設定檔同步處理通訊限制在特定網域控制站,請輸入下列命令:
Set-SPProfileServiceApplication $upa -UseOnlyPreferredDomainControllers $true
注意
最多可能需要 5 分鐘的時間,變更的屬性值才會傳播到管理中心網站。在管理中心伺服器上重設 IIS,將會強制性地立即載入新值。如需重設 IIS 的詳細資訊,請參閱 IIS 重設活動(可能為英文網頁) (https://go.microsoft.com/fwlink/?linkid=179336&clcid=0x404)(可能為英文網頁)。
如需詳細資訊,請參閱<Get-SPServiceApplication>與<Set-SPProfileServiceApplication>。
調整設定檔同步處理逾時
以下情況會發生逾時問題:
在管理中心的 [新增/編輯同步處理連線] 頁面上,嘗試連線目錄服務伺服器。
注意
Microsoft SharePoint Server 2010 2010 年 6 月累計更新有此逾時的相關資訊。如需累計更新的詳細資訊,請參閱 https://support.microsoft.com/kb/983497/zh-tw。
嘗試在管理中心的 [新增/編輯同步處理連線] 頁面上填入容器清單時。狀態列中出現 JavaScript 逾時錯誤時,會出現此情況。
在管理中心的 [新增/編輯同步處理連線] 頁面上按一下[確定]時。如此將會引發下列錯誤訊息,且出現這種情況的原因在於 Forefront Identity Manager Web 服務在建立或更新設定檔同步處理連線時出現逾時:
「要求通道在等待回覆時於 00:01:29.9062626 之後逾時。請增加傳送至要求呼叫的逾時值,或增加繫結上的 SendTimeout 值。分配給此作業的時間可能是較長逾時的一部分。」
使用 Windows PowerShell 調整設定檔同步處理逾時
確認符合下列基本需求:請參閱<Add-SPShellAdmin>。
如果您想變更連線目錄服務伺服器的逾時值,請執行以下步驟:
複製下列程式碼,並將程式碼貼到文字編輯器 (例如,記事本):
$upsAppProxy = Get-SPServiceApplicationProxy <UPSAppProxyGUID> $upsAppProxy.LDAPConnectionTimeout = <NewTimeout> $upsAppProxy.Update()
將 <UPSAppProxyGUID> 取代成 User Profile Service 應用程式 Proxy 的 GUID,並將 <NewTimeout> 換成新的逾時值 (以秒為單位)。預設逾時為 120 秒。
將檔案儲存成以 ANSI 編碼的文字檔案,副檔名為 .ps1。
如果想要變更「填入容器」控制項的逾時值,請執行以下步驟:
複製下列程式碼,並將程式碼貼到文字編輯器 (例如,記事本):
$upsAppProxy = Get-SPServiceApplicationProxy <UPSAppProxyGUID> $upsAppProxy.ImportConnAsyncTimeout = <NewTimeout> $upsAppProxy.Update()
將 <UPSAppProxyGUID> 取代成 User Profile Service 應用程式 Proxy 的 GUID,並將 <NewTimeout> 換成新的逾時值 (以秒為單位)。預設逾時為 1,000 秒 (大約 17 分鐘)。
將檔案儲存成以 ANSI 編碼的文字檔案,副檔名為 .ps1。
如果想變更呼叫 Forefront Identity Manager Web 服務的逾時值,請執行以下步驟:
複製下列程式碼,並將程式碼貼到文字編輯器 (例如,記事本):
$upsApp = Get-SPServiceApplication <UPSAppGUID> $upsApp.FIMWebClientTimeOut = <NewTimeout> $upsApp.Update()
將 <UPSAppProxyGUID> 取代成 User Profile Service 應用程式的 GUID,並將 <NewTimeout> 換成新的逾時值 (以毫秒為單位)。預設逾時為 300,000 毫秒 (5 分鐘)。
將檔案儲存成以 ANSI 編碼的文字檔案,副檔名為 .ps1。
在 [開始] 功能表上,按一下 [所有程式]。
按一下 [Microsoft SharePoint 2010 產品]。
按一下 [SharePoint 2010 管理命令介面]。
變更至您儲存檔案的目錄。
在 Windows PowerShell 命令提示字元處,輸入下列命令來執行指令碼檔案:
./<filename>.ps1
其中 <filename> 是要執行之檔案的名稱。
如需詳細資訊,請參閱<Get-SPServiceApplicationProxy>與<Get-SPServiceApplication>。