适用于: 2013
2013  2016
2016  2019
2019  Subscription Edition
Subscription Edition  SharePoint in Microsoft 365
SharePoint in Microsoft 365
SharePoint Server 中的配置文件同步使用户配置文件服务实例的管理员能够将存储在 SharePoint Server 配置文件存储中的用户和组配置文件信息与存储在整个企业的目录服务中的配置文件信息同步。 配置完配置文件同步后,必须完成某些任务才能保留这些设置。 这些任务包括:移除其帐户已禁用或已删除的用户,移动或重命名服务器,以及启动或停止用户配置文件同步服务等。 有关详细信息,请参阅为 SharePoint Server 2013 规划配置文件同步。
若要运行本文中的 PowerShell cmdlet,请验证是否具有以下成员身份:
- SQL Server 实例上的 securityadmin 固定服务器角色。 
- 要更新的所有数据库上的 db_owner 固定数据库角色。 
- 运行 PowerShell cmdlet 的服务器上的 Administrators 组。 
重要
每个部分都对它适用的 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 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 用户配置文件存储中存在过时的用户或组有两个原因:
- 过时的用户:"我的网站"清理计时器作业处于不活动状态。 用户配置文件同步计时器作业将已经从目录源中删除的用户标记为待删除。 当"我的网站"清理作业运行时,它会查找所有标记为待删除的用户并删除这些用户的配置文件。 然后将各自的"我的网站"分配给已删除用户的经理,并向该经理发送一封电子邮件通知此删除情况。 
- 过时的用户和组:用户配置文件存储中存在不是由配置文件同步导入的用户和组。 例如,如果从早期版本的 SharePoint Server 升级并选择仅将一部分域与 SharePoint Server 同步,则可能会出现这种情况。 
使用 PowerShell 查找和删除过时的用户和组
- 确认您具有以下成员身份:
- 对 ImportExport_GetNonimportedObjects 和 ImportExport_PurgeNonimportedObjects 的执行权限将过程存储在配置文件数据库中。
- 启动 SharePoint 命令行管理程序。 
- 在 PowerShell 命令提示符下,执行以下作: 
- 若要获取 User Profile Service 应用程序对象,请键入以下命令: 
$upa = Get-spserviceapplication <identity>
其中 <标识> 是用户配置文件同步服务应用程序的 GUID。
- 若要查看要删除的用户和组,请键入以下命令:
Set-SPProfileServiceApplication $upa -GetNonImportedObjects $true
- 若要删除过时的用户和组,请键入以下命令: - 警告 - 此操作无法撤消。 
Set-SPProfileServiceApplication $upa -PurgeNonImportedObjects $true
有关详细信息,请参阅 Get-SPServiceApplication 和 Set-SPProfileServiceApplication。
维护配置文件架构更改
注意
本部分适用于 SharePoint Server 2013。
配置文件架构更改包括添加新的用户配置文件属性,更改用户配置文件属性映射,或更改配置文件同步连接筛选器等内容。 当配置文件架构发生更改时,必须首先执行非定期完全同步,然后再安排定期配置文件同步。 有关执行完全非重复配置文件同步所需的步骤,请参阅在 SharePoint Server 中手动启动配置文件同步。
重命名运行用户配置文件同步服务的服务器
注意
本部分适用于 SharePoint Server 2013。
使用以下过程重命名配置文件同步服务器。
使用 PowerShell 重命名运行用户配置文件同步服务的服务器
- 启动 SharePoint 命令行管理程序。 
- 在 PowerShell 命令提示符处,键入以下命令: 
Rename-SPServer <Identity> -Name <newName>
其中:
- Identity 是服务器的旧名称。 
- newName 是服务器的新名称。 
有关使用 Microsoft PowerShell 重命名服务器的详细信息,请参阅 Rename-SPServer。
将用户配置文件同步服务移到新服务器
注意
本部分适用于 SharePoint Server 2013。
使用以下过程将用户配置文件同步服务移到新服务器。
使用管理中心将用户配置文件同步服务移动到新服务器
- 确认执行此过程的用户帐户拥有以下凭据:
- 执行此过程的用户帐户是运行 SharePoint 管理中心网站 的计算机上 服务器场管理员 组的成员。 
- 执行此过程的用户帐户是在其上安装用户配置文件同步服务的计算机上的 管理员 组的成员。 这是启动用户配置文件同步服务所需的。 启动用户配置文件同步服务后,可以从 管理员 组删除服务器场帐户。 
- 在当前运行用户配置文件同步服务的服务器上,在 SharePoint 管理中心网站的"系统设置"部分,单击"管理服务器上的服务"。 
- 在"用户配置文件同步服务"的旁边,单击"停止"以停止用户配置文件同步服务。 
- 在新的用户配置文件同步服务器上,在SharePoint 管理中心网站的"系统设置"部分,单击"管理服务器上的服务"。 
- 在"用户配置文件同步服务"的旁边,单击"启动"以启动用户配置文件同步服务。 
- 在新的用户配置文件同步服务器上,在SharePoint 管理中心网站的"应用程序管理"部分,单击"管理服务应用程序"。 
- 在"服务应用程序"页上,单击相应的 User Profile Service 应用程序名称对应的链接。 
- 在"User Profile Service 应用程序"页上的"同步"部分,单击"启动配置文件同步"。 
- 在“启动配置文件同步”页上,选择“启动完全同步”,然后单击“确定”。 
将用户配置文件同步通信限制到特定域控制器
使用以下过程将配置文件同步通信限制到特定域控制器。
使用 Windows PowerShell限制与特定域控制器的用户配置文件同步通信
- 启动 SharePoint 命令行管理程序。 
- 若要获取 User Profile Service 应用程序对象,请键入以下命令: 
$upa=Get-SPServiceApplication <GUID>
其中 <GUID> 是用户配置文件同步服务应用程序的 GUID。
- 若要将配置文件同步通信限制到特定域控制器,请键入以下命令:
Set-SPProfileServiceApplication $upa -UseOnlyPreferredDomainControllers $true
注意
可能需要 5 分钟的时间,更改后的属性值才能传播到 SharePoint 管理中心网站。 在管理中心服务器上重置 IIS 会强制立即加载新值。 若要详细了解如何重置 IIS,请参阅 IIS Reset Activity(IIS 重置活动)。
有关详细信息,请参阅 Get-SPServiceApplication 和 Set-SPProfileServiceApplication。
调整用户配置文件同步超时
注意
本部分适用于 SharePoint Server 2013。
以下情况中会出现超时:
- 尝试在管理中心的"添加/编辑同步连接"页上连接到目录服务服务器时。 
- 尝试在管理中心的"添加/编辑同步连接"页上填充容器列表时。 当状态栏中出现 JavaScript 超时错误时,将会出现这种情况。 
- 在管理中心的"添加/编辑同步连接"页上单击"确定"时。 这将导致以下错误消息,并且出现这种情况的原因在于 Forefront Identity Manager Web 服务在创建或更新用户配置文件同步连接时出现超时: 
“请求通道在 00:01:29.9062626 之后等待回复时超时。 增加传递给 Request 调用的超时值,或增加绑定上的 SendTimeout 值。 分配给此作的时间可能是较长超时的一部分。”
使用 Windows PowerShell调整用户配置文件同步超时
- 如果要更改连接到目录服务器的超时值,请执行以下操作: 
- 将以下代码粘贴到文本编辑器(如记事本)中: 
$upsAppProxy = Get-SPServiceApplicationProxy <UPSAppProxyGUID>
$upsAppProxy.LDAPConnectionTimeout = <NewTimeout>
$upsAppProxy.Update()
- 将 UPSAppProxyGUID> 替换为<用户配置文件服务应用程序代理的 GUID,将 <NewTimeout> 替换为新的超时值(以秒为单位)。 默认超时值为 120 秒。 
- 将文件保存为扩展名为 .ps1 的 ANSI 编码文本文件。 
- 如果要更改"填充容器"控件的超时值,请执行以下操作: 
- 将以下代码粘贴到文本编辑器(如记事本)中: 
$upsAppProxy = Get-SPServiceApplicationProxy <UPSAppProxyGUID>
$upsAppProxy.ImportConnAsyncTimeout = <NewTimeout>
$upsAppProxy.Update()
- 如果要更改 Forefront Identity Manager Web 服务调用的超时值,请执行以下操作: - 将 UPSAppProxyGUID> 替换为<用户配置文件服务应用程序代理的 GUID,将 <NewTimeout> 替换为新的超时值(以秒为单位)。 默认超时值为 1,000 秒(大约 17 分钟)。 
- 将以下代码粘贴到文本编辑器(如记事本)中: 
$upsApp = Get-SPServiceApplication 
<UPSAppGUID>
$upsApp.FIMWebClientTimeOut = 
<NewTimeout>
$upsApp.Update()
- 将 UPSAppGUID> 替换为< User Profile 服务应用程序的 GUID,将 <NewTimeout> 替换为新的超时值(以毫秒为单位)。 默认超时值为 300,000 秒(大约 5 分钟)。 
- 将文件保存为扩展名为 .ps1 的 ANSI 编码文本文件,例如 AdjustProfileSyncTimeouts.ps1。 
- 在"开始"菜单上,单击"所有程序"。 
- 单击"Microsoft SharePoint 2013 产品"。 
- 单击"SharePoint 2013 Management Shell"。 
- 转到保存该文件的目录。 
- 在Microsoft PowerShell 命令提示符下,键入以下命令以执行脚本文件: 
./<file name>.ps1
其中 <文件名> 是要执行的文件的名称。
有关详细信息,请参阅 Get-SPServiceApplicationProxy 和 Get-SPServiceApplication。