配置 Skype for Business Server 以使用统一联系人存储

总结:为 Exchange Server 2016 或 Exchange Server 2013 和 Skype for Business Server 配置统一联系人存储。

使用统一的联系人存储,用户可以维护单个联系人列表,然后让这些联系人在多个应用程序中可用,包括Skype for Business、Microsoft Outlook 2013和Microsoft Outlook Web App 2013。 为用户启用统一联系人存储时,该用户的联系人不会存储在Skype for Business Server中,也不会根据需要检索。 相反,他们的联系人存储在 Exchange Server 2016 或 Exchange Server 2013 中,并使用 Exchange Web 服务检索。

注意

从技术上讲,联系信息存储在用户的 Exchange 邮箱中的一对文件夹中。 联系人本身存储在名为“Skype for Business联系人”的文件夹中,该文件夹对最终用户可见;有关联系人的元数据存储在对最终用户不可见的子文件夹中。

为用户启用统一的联系人存储库

如果已配置 Skype for Business Server 与 Exchange Server 之间的服务器到服务器身份验证,并且你已启用统一联系人存储;则不需要其他服务器配置。 但是,需要另一个用户帐户配置才能将用户的联系人移动到统一的联系人存储中。 默认情况下,用户联系人保存在Skype for Business Server中,而不是保存在统一联系人存储中。

通过使用Skype for Business Server用户服务策略来管理对统一联系人存储的访问。 用户服务器策略只具有一个属性 (UcsAllowed);此属性用于确定存储用户联系人的位置。 如果用户由用户服务策略管理,其中 UcsAllowed 已设置为 True ($True) 则用户的联系人将存储在统一联系人存储中。 如果用户由用户服务策略管理,其中 UcsAllowed 已设置为 False ($False) 则其联系人存储在 Skype for Business Server 中。

安装 Skype for Business Server 时, (全局范围内配置单个用户服务策略,) 也会安装。 此策略中的 UcsAllowed 值将设置为 True,这意味着在默认情况下,用户联系人将存储在统一联系人存储中(假设已部署和配置它)。 如果要将所有用户联系人迁移到统一联系人存储,则无需执行任何操作。

如果您不想将所有联系人都迁移到统一联系人存储,您可以通过在全局策略中将 UcsAllowed 属性设置为 False 来对所有用户禁用统一联系人存储:

Set-CsUserServicesPolicy -Identity global -UcsAllowed $False

在全局策略中禁用统一联系人存储后,可以创建一个允许用户使用统一联系人存储的策略;这允许某些用户将其联系人保留在统一联系人存储中,而其他用户则继续将其联系人保留在Skype for Business Server中。 可通过使用与以下命令类似的命令来创建每用户的用户服务策略:

New-CsUserServicesPolicy -Identity "AllowUnifiedContactStore" -UcsAllowed $True

创建新策略后,必须将该策略分配给应有权访问统一联系人存储的任何用户。 可通过使用与以下内容类似的命令来将每用户策略分配给用户:

Grant-CsUserServicesPolicy -Identity "Ken Myer" -PolicyName "AllowUnifiedContactStore"

分配策略后,Skype for Business Server将开始将用户的联系人迁移到统一联系人存储。 迁移完成后,用户会将他们的联系人存储在 Exchange 中,而不是Skype for Business Server。 如果用户在迁移完成时恰好登录到 Lync 2013,则会显示一个消息框,要求他们注销Skype for Business然后重新登录以完成该过程。 尚未分配此按用户策略的用户不会将其联系人迁移到统一联系人存储。 这是因为这些用户由全局策略管理,并且全局策略中禁用了统一联系人存储的使用。

可以通过从 Skype for Business Server 命令行管理程序中运行 Test-CsUnifiedContactStore cmdlet 来验证用户的联系人是否已成功迁移到统一联系人存储:

Test-CsUnifiedContactStore -UserSipAddress "sip:kenmyer@litwareinc.com" -TargetFqdn "atl-cs-001.litwareinc.com"

如果 Test-CsUnifiedContactStore 成功,则表示用户 sip:kenmyer@litwareinc.com 的联系人已迁移到统一联系人存储。

回滚统一的联系人存储库

如果需要从统一联系人存储中删除用户的联系人 (例如,如果用户需要在 Microsoft Lync Server 2010 上重新托管,因此不能再使用统一联系人存储) 则必须执行两项操作。 首先,您必须为用户分配一个新的用户服务策略,此策略禁止将联系人存储在统一的联系人存储库中。 (即,UcsAllowed 属性设置为 $False.) 如果没有此类策略,可以使用类似于以下内容的命令创建策略:

New-CsUserServicesPolicy -Identity NoUnifiedContactStore -UcsAllowed $False

然后,可通过使用与以下内容类似的命令分配此新的每用户策略 (NoUnifiedContactStore):

Grant-CsUserServicesPolicy -Identity "Ken Myer" -PolicyName NoUnifiedContactStore

上面的命令将新策略分配给用户 Ken Myer,并且还阻止将 Ken 的联系人迁移到统一的联系人存储库中。

注意

在某些情况下,只需取消分配用户的当前用户服务策略即可达到相同的效果。 例如,假定 Ken Myer 具有启用统一的联系人存储库的每用户用户服务策略,但您的全局策略禁止使用统一的联系人存储库。 在此情况下,您可以取消分配 Ken 的每用户服务策略。 在执行此操作后,Ken 将自动由全局策略管理,因此他将不再能够访问统一的联系人存储库。 若要取消分配以前分配的每用户策略,请使用前面所示的相同命令,但这次将 PolicyName 参数设置为 null 值:Grant-CsUserServicesPolicy -Identity “Ken Myer” -PolicyName $Null

在使用统一的联系人存储库时,请务必记住术语“阻止将 Ken 的联系人迁移到统一的联系人存储库中”。 只需为 Ken 分配新的用户服务策略,就不会将联系人移出统一联系人存储区。 当用户登录Skype for Business Server时,系统会检查用户的用户服务策略,以查看其联系人是否应保留在统一的联系人存储中。 如果答案是“是” (也就是说,如果 UcsAllowed 属性设置为 $True) 则这些联系人将迁移到统一联系人存储 (假设这些联系人不在统一联系人存储) 中。 如果答案是否为“否”,则Skype for Business Server只需忽略用户的联系人,然后继续执行其下一个任务。 这意味着,无论 UcsAllowed 属性的值如何,Skype for Business Server都不会自动将用户的联系人从统一联系人存储区移出。

这也意味着,在向用户分配新的用户服务策略后,必须运行 Invoke-CsUcsRollback cmdlet,以便将用户的联系人移出Exchange Server并移回Skype for Business Server。 例如,分配 Ken Myer 新的用户服务策略后,可以使用以下命令将其联系人移出统一联系人存储区:

Invoke-CsUcsRollback -Identity "Ken Myer"

如果更改了用户服务策略,但未运行 Invoke-CsUcsRollback cmdlet Ken 的联系人将不会从统一联系人存储中删除。 如果运行 Invoke-CsUcsRollback 但不更改 Ken Myer 的用户服务策略,该怎么办? 在这种情况下,Ken 的联系人会暂时从统一联系人存储中删除。 请务必记住此删除是暂时性的这一事实。 从统一联系人存储区中删除 Ken 的联系人后,Skype for Business Server将等待 7 天,然后检查查看为 Ken 分配了哪些用户服务策略。 如果仍为 Ken 分配了启用统一联系人存储的用户的策略,则其联系人会自动移回联系人存储区。 若要从统一联系人存储中永久删除联系人,除了运行 Invoke-CsUcsRollback cmdlet 外,还必须更改用户服务策略。

由于大量变量可能会影响迁移,因此很难估计帐户完全迁移到统一联系人存储之前需要多长时间。 但是,一般情况下,迁移不会立即生效:即使迁移少量联系人,也可能需要 10 分钟或更长的时间才能完成迁移。