在 SharePoint Server 中維護使用者配置檔同步處理設定
適用於:2013 Subscription Edition SharePoint in Microsoft 365
SharePoint Server 中的設定檔同步處理可讓使用者配置檔服務實例的系統管理員同步處理儲存在 SharePoint Server 設定檔存放區中的使用者和群組設定檔資訊,以及儲存在整個企業目錄服務中的配置檔資訊。 設定使用者設定檔同步處理之後,必須完成某些工作才能保留這些設定。 這些工作的範例包括移除已停用或已刪除帳戶的使用者、移動或重新命名伺服器,以及啟動或停止 User Profile Synchronization Service 等。 如需詳細資訊,請參閱<規劃 SharePoint Server 2013 Preview 的設定檔同步處理>。
若要執行本文中的 PowerShell Cmdlet,請確認您具有下列成員資格:
SQL Server 執行個體上的 securityadmin 固定伺服器角色。
所有要更新之資料庫上的 db_owner 固定資料庫角色。
正在執行 PowerShell Cmdlet 之所在伺服器上的系統管理員群組。
重要事項
每個區段都會記下它所套用的 SharePoint Server 版本。
重新命名使用者或變更使用者網域
注意事項
本節適用於 SharePoint Server 2013、2016 和 2019。
SharePoint Server 可讓您處理數個不同的使用者移轉案例。 以下是針對 Active Directory 網域服務 (AD DS) 處理的案例範例:
帳戶名稱 ( sAMAccountName) 使用者所在的 AD DS 中變更。
安全性識別碼 (SID) 發生變更。
辨別名稱 (DN) 發生變更,其中包括使用者帳戶所在之 AD DS 的組織單位 (OU) 容器中的變更。 例如,如果使用者的辨別名稱在 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 的使用者配置檔。
重新命名使用者或變更使用者網域
- 確認執行此程序的使用者帳戶具有下列認證:
執行此程式的用戶帳戶是執行 SharePoint 管理中心網站之電腦上的伺服器陣組管理員群組成員。
執行此程序的使用者帳戶是安裝 User Profile Synchronization Service 之電腦的管理員群組成員。
如果同步處理正在進行中,請開啟管理中心,然後按兩下 [應用程式管理] 區段中的 [管理服務應用程式]。 從服務應用程式清單中選取適當的 User Profile Service 應用程式。 在「管理服務應用程式」頁面上,按一下 [停止設定檔同步處理]。
停用使用者設定檔累加同步處理計時器工作。
確定使用
stsadm -o migrateuser
的使用者移轉已成功。
注意事項
Move-SPUser 也可以用來移轉使用者。
流覽至該使用者的 [我的網站],例如 http://mysite/person.aspx?accountname=<新的帳戶名稱>,以確保可以存取已移轉使用者的配置檔。
執行使用者設定檔同步處理。 如需詳細資訊,請參閱在 SharePoint Server 中手動啟動配置檔同步處理。
流覽至該使用者的 [我的網站],以重新檢查已移轉使用者的配置檔存取權。
啟用使用者設定檔累加同步處理計時器工作。
排除已停用帳戶的使用者
注意事項
本節適用於 SharePoint Server 2013。
您可以使用 SharePoint Server 2013 中的排除篩選器,排除在 AD DS 中停用帳戶的使用者。 如需排除已停用帳戶之使用者所需的步驟,請參閱在 SharePoint Server 2013 中同步處理使用者和群組配置檔。
移除過時的使用者與群組
注意事項
本節適用於 SharePoint Server 2013、2016 和 2019。
在 SharePoint Server 使用者設定檔存放區中存在過時使用者或群組的原因有兩個:
過時的使用者:我的網站清除定時器工作不在使用中。 User Profile Synchronization 計時器工作會將已經從目錄來源中刪除的使用者標記為待刪除。 當「我的網站」清除作業執行時,它會尋找標示為要刪除的所有使用者,並刪除其配置檔。 接著會將個別的「我的網站」指派給已刪除使用者的管理員,並傳送電子郵件訊息通知管理員此刪除。
過時的使用者和群組:配置檔同步處理未匯入的使用者和群組存在於使用者配置檔存放區中。 例如,如果您從舊版 SharePoint Server 升級,並選擇只同步處理網域子集與 SharePoint Server,就會發生這種情況。
若要使用PowerShell尋找和移除過時的使用者和群組
- 確認您具備下列成員身分:
- 設定檔資料庫中之 ImportExport_GetNonimportedObjects 和 ImportExport_PurgeNonimportedObjects 預存程序的「執行」權限。
啟動 SharePoint 管理命令介面。
在 PowerShell 命令提示字元中,執行下列動作:
若要取得 User Profile Service 應用程式物件,請輸入下列命令:
$upa = Get-spserviceapplication <identity>
其中 <identity> 是使用者配置檔同步處理服務應用程式的 GUID。
- 若要檢視要刪除的使用者和群組,請輸入下列命令:
Set-SPProfileServiceApplication $upa -GetNonImportedObjects $true
若要刪除過時的使用者和群組,請輸入下列命令:
注意
這個動作無法復原。
Set-SPProfileServiceApplication $upa -PurgeNonImportedObjects $true
如需詳細資訊,請參閱<Get-SPServiceApplication>和<Set-SPProfileServiceApplication>。
維護設定檔結構描述變更
注意事項
本節適用於 SharePoint Server 2013。
設定檔結構描述變更包括新增新的使用者設定檔屬性、變更使用者設定檔屬性對應,或變更設定檔同步處理連線篩選等內容。 當設定檔結構描述發生變更時,必須先執行非週期性的完整同步處理,然後再排程週期性的設定檔同步處理。 如需執行完整非週期性配置檔同步處理所需的步驟,請參閱在 SharePoint Server 中手動啟動設定檔同步處理。
重新命名執行 User Profile Synchronization Service 的伺服器
注意事項
本節適用於 SharePoint Server 2013。
請使用下列程序來重新命名設定檔同步處理伺服器。
使用 PowerShell 重新命名執行使用者設定檔同步處理服務的伺服器
啟動 SharePoint 管理命令介面。
在 PowerShell 命令提示字元中,輸入下列命令:
Rename-SPServer <Identity> -Name <newName>
其中:
身分識別是伺服器的舊名稱。
新名稱是伺服器的新名稱。
如需使用 Microsoft PowerShell 重新命名伺服器的詳細資訊,請參閱 Rename-SPServer。
將 User Profile Synchronization Service 移至新的伺服器
注意事項
本節適用於 SharePoint Server 2013。
使用下列程序,將 User Profile Synchronization Service 移至新伺服器。
使用管理中心將使用者配置檔同步處理服務移至新的伺服器
- 確認執行此程序的使用者帳戶具有下列認證:
執行此程式的用戶帳戶是執行 SharePoint 管理中心網站之電腦上的伺服器陣組管理員群組成員。
執行此程序的使用者帳戶是安裝 User Profile Synchronization Service 之電腦的管理員群組成員。 必須符合此條件才能啟動 User Profile Synchronization Service。 User Profile Synchronization Service 啟動之後,您可以從管理員群組移除伺服器陣列帳戶。
在目前正在執行使用者配置檔同步處理服務的伺服器上,於 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 將使用者設定檔同步處理通訊限制在特定網域控制站
啟動 SharePoint 管理命令介面。
若要取得 User Profile Service 應用程式物件,請輸入下列命令:
$upa=Get-SPServiceApplication <GUID>
其中 <GUID> 是使用者設定檔同步處理服務應用程式的 GUID。
- 若要將設定檔同步處理通訊限制在特定網域控制站,請輸入下列命令:
Set-SPProfileServiceApplication $upa -UseOnlyPreferredDomainControllers $true
注意事項
變更的屬性值可能需要五分鐘才會傳播至 SharePoint 管理中心網站。 在管理中心伺服器上重設 IIS 會強制立即載入新值。 如需重設 IIS 的詳細資訊,請參閱 IIS 重設活動。
如需詳細資訊,請參閱<Get-SPServiceApplication>和<Set-SPProfileServiceApplication>。
調整使用者設定檔同步處理逾時
注意事項
本節適用於 SharePoint Server 2013。
下列情況會發生逾時問題:
嘗試在管理中心的 [ 新增/編輯同步處理連線 ] 頁面上連線到目錄服務伺服器時。
嘗試在管理中心的 [ 新增/編輯同步處理連線 ] 頁面上填入容器清單時。 狀態列中出現 JavaScript 逾時錯誤時,會出現此情況。
在管理中心的 [新增/編輯同步處理連線] 頁面上按兩下 [確定] 時。 如此會導致下列錯誤訊息,且出現此情況的原因在於 Forefront Identity Manager Web 服務在建立或更新使用者設定檔同步處理連線時出現逾時:
「在 00:01:29.9062626 之後等候回復時,要求通道逾時。 增加傳遞至 Request 呼叫的逾時值,或增加 Binding 上的 SendTimeout 值。 配置給此作業的時間可能是較長逾時的一部分。」
使用 Windows PowerShell 調整使用者設定檔同步處理逾時
如果您想變更連線目錄伺服器的逾時值,請執行下列動作:
將下列程式碼貼到 [記事本] 等文字編輯器:
$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()
如果想變更呼叫 Forefront Identity Manager Web 服務的逾時值,請執行下列動作:
將 UPSAppProxyGUID> 取代為 User Profile Service 應用程式 Proxy 的 GUID,並將 NewTimeout 取代<為新的逾時值,以秒為單位。>< 預設逾時為 1,000 秒 (大約 17 分鐘)。
將下列程式碼貼到 [記事本] 等文字編輯器:
$upsApp = Get-SPServiceApplication
<UPSAppGUID>
$upsApp.FIMWebClientTimeOut =
<NewTimeout>
$upsApp.Update()
將 UPSAppGUID> 取代為 User Profile Service 應用程式的 GUID,並將 NewTimeout 取代<為以毫秒為單位的新逾時值。>< 預設逾時為 300,000 毫秒 (5 分鐘)。
將檔案儲存成以 ANSI 編碼的文字檔案,副檔名為 .ps1,例如 AdjustProfileSyncTimeouts.ps1。
在 [開始] 功能表上,按一下 [所有程式]。
按一下 [Microsoft SharePoint 2013 產品]。
按一下 [SharePoint 2013 管理命令介面]。
變更至您儲存檔案的目錄。
在 Microsoft PowerShell 命令提示字元中,輸入下列命令以執行腳本檔案:
./<file name>.ps1
其中 <,檔名> 是要執行的檔名。
如需詳細資訊,請參閱<Get-SPServiceApplicationProxy>和<Get-SPServiceApplication>。